如何在颤动中处理 Firebase Auth 未处理的异常? [复制]

Posted

技术标签:

【中文标题】如何在颤动中处理 Firebase Auth 未处理的异常? [复制]【英文标题】:How to handle a Firebase Auth unhandled exception in flutter? [duplicate] 【发布时间】:2019-07-25 19:12:16 【问题描述】:

当我的应用程序的用户在他们已经注册了谷歌的情况下尝试注册 Facebook 时,Flutter 从控制台给出了这个错误。我将如何处理我的代码中的这个错误?我假设输出的exception 部分是错误代码?

Unhandled Exception: PlatformException(exception, An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address., null)
E/flutter ( 5581): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)

这是我的代码:

void loginWithFb() async 
    var auth = AuthProvider.of(context).auth;
    print('Signing up with fb...');
    setState(() 
      _showProgressIndicator = true;
    );

    FirebaseUser user = await auth.signInWithFBAcc();
    uId = user?.uid;


    if(uId != null) 
      print('Signed in: $uId');
      widget.onSignedIn(user);
     else 

      print('fb login cancelled');

    

//    _showAlert(context);
    setState(() 
      _showProgressIndicator = false;
    );
  

【问题讨论】:

使用.catchError((e)print(e);) 谢谢,我可以将它与异步函数一起使用吗? 是的,你可以这样做。 【参考方案1】:
Future<String> signUp(String email, String password) async 
    try 
      FirebaseUser user = await _firebaseAuth.createUserWithEmailAndPassword(
        email: email,
        password: password,
      );
      return user.uid;
     on PlatformException catch (e) 
      print(e.toString());
      return e.code;
    
  

【讨论】:

发布代码很棒,但如果您可以在答案中添加解释,这将有助于进一步的观众了解正在发生的事情。

以上是关于如何在颤动中处理 Firebase Auth 未处理的异常? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中将图像从图像选择器保存到firebase存储

使用firebase时颤动的Gradle问题

颤动的firebase身份验证提供者未通知

无法在 Xcode 中使用 firebase auth 构建颤振应用程序

如何在颤动中处理文件的空安全性?

如何在颤动中使用facebook执行firebase身份验证[重复]