繁体   English   中英

Flutter Firebase 身份验证需要点击 2 次才能登录

[英]Flutter Firebase Authentication requires 2 clicks for sign in

我刚刚将我的应用程序与 firebase 身份验证相关联,但是当我尝试单击登录按钮时:它说

W/System  ( 6835): Ignoring header X-Firebase-Locale because its value was null.

这是我关于 firebase 身份验证的代码:`

void signIn() async{
    final User? user = (await auth.signInWithEmailAndPassword(email: mailController.text, password: passController.text)).user;
    final uid = user!.uid;

    if(uid != null){
      if(this.mounted){
      setState((){
        success = 2;
        userMail = user.email!;
        userName = userMail;
        userName = userMail.replaceFirst(userName[0],"");
        userName = userName.substring(0,userName.indexOf("@"));
        userName = userName.replaceFirst(userName[0],userName[0].toUpperCase());
      });
    }}
    else{
      setState((){
        success = 3;
      });
    }
  }

`

if(success == 2){
                              if(userMail.startsWith("1")){
                                Navigator.pushReplacement(context,MaterialPageRoute(builder:(context) => OgrenciPage(mail:userName)));
                              }

``

我试图创建 sha-1 密钥,关闭蓝牙连接,但它从来没有用过。

我之前也遇到过这个问题,然后通过使函数 Future asyn{} 和使用 try catch 块来解决这个问题。

在我的例子中,我创建了登录类模型,我在其中执行所有登录/注册功能

这是示例代码,您可以在其中了解如何管理它:

class Login {
  FirebaseAuth firebaseAuth = FirebaseAuth.instance;


  Future<void> signInUser(
      String email, String password, BuildContext context) async {
    try {
      await firebaseAuth.signInWithEmailAndPassword(
          email: email, password: password);
    } on FirebaseAuthException catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(
          content: Text(
            e.toString(),
          ),
          backgroundColor: Colors.redAccent,
          duration: const Duration(seconds: 2),
        ),
      );
    } catch (error) {
      rethrow;
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM