【问题标题】:How to handle a Firebase Auth unhandled exception in flutter? [duplicate]如何在颤动中处理 Firebase Auth 未处理的异常? [复制]
【发布时间】: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);})
  • 谢谢,我可以将它与异步函数一起使用吗?
  • 是的,你可以这样做。

标签: dart flutter firebase-authentication


【解决方案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;
    }
  }

【讨论】:

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