【问题标题】:how to handle firebase auth exceptions in flutter?如何处理颤振中的firebase auth异常?
【发布时间】:2020-04-07 05:38:57
【问题描述】:

我已经开发了一个登录页面。但我不知道如何在 Flutter 上捕获 Firebase 身份验证异常并显示它们。我想显示一些电子邮件不存在,密码不匹配的内容。

这是我的代码:

Future<void> login() async{
    final  formState = _formkey.currentState;
    if(formState.validate()){
      formState.save();
      try{

        final FirebaseUser user = (await FirebaseAuth.instance.signInWithEmailAndPassword(email: _username, password: _password)).user;

          Navigator.push(context, MaterialPageRoute(builder: (context) => Admin()));
      }catch(e){
        print(e.message);
      }

请有人帮我找到验证登录的方法。

【问题讨论】:

    标签: firebase flutter dart firebase-authentication


    【解决方案1】:

    您可以只向用户显示 catch block 中的 e.message - 如果您只想显示消息。

    【讨论】:

    • 你能告诉我该怎么做吗?
    • 嗨 Rohit,这就是 @Peter 之前解释的内容。
    【解决方案2】:

    您可以使用Toast 来显示错误:

    # add this line to your dependencies
    toast: ^0.1.5
    

    然后在 dart 文件中导入:

    import 'package:toast/toast.dart';
    

    然后在catch里面:

     }catch(e){
            print(e.message);
        Toast.show(e.message, context, duration: Toast.LENGTH_SHORT, gravity:  Toast.BOTTOM);    
     }
    

    https://pub.dev/packages/toast

    您不必检查电子邮件是否错误,signInWithEmailAndPassword 已经为您执行此操作,并且如果身份验证错误将返回错误。

    【讨论】:

    • 我想验证电子邮件和密码,如果它是错误的,那么应该显示一条 toast 消息
    • signinwithemailandpassword 返回以下错误firebase.google.com/docs/reference/js/…,Firebase 验证电子邮件和密码。您需要做的就是使用 Toast 通知用户
    • 有什么问题
    • 为什么不能实现
    • 首先,当我无法找到的电子邮件或密码错误时,我只想显示一条错误消息