【发布时间】:2019-10-09 03:27:58
【问题描述】:
我已经使用 firebase_auth 0.11.0 成功实现了 Flutter 的 Google 和 Facebook 登录。我需要为具有相同电子邮件地址的帐户实现关联帐户功能。
Future<FirebaseUser> _signInWithGoogle() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final FirebaseUser user = await _auth.signInWithCredential(credential);
您如何/在哪里捕获该帐户是重复电子邮件并因此需要 linkwithcredential 函数的 Firebase 错误 (auth/account-exists-with-different-credential)?我试图在上面的signInWithCredential 和_signInWithGoogle() 上捕获错误,但无济于事。
基于此处的示例:
FirebaseUser user = await auth.currentUser();
user = await user.linkWithCredential(credential);
这是您链接帐户的方式,但我的问题是您如何确定需要运行此功能?
编辑:为清楚起见,我可以在仅存在一个凭据/会话时链接帐户吗?例如,流程应该是,用 Facebook 登录,捕获 (ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL),然后链接到 Google。
【问题讨论】:
标签: flutter firebase-authentication