Я успешно реализовал входы в Google и Facebook для Flutter, используя firebase_auth 0.11.0. Мне нужно реализовать функцию связывания аккаунтов для аккаунтов с одинаковым адресом электронной почты.
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);
Как / где вы обнаруживаете ошибку Firebase (аутентификация / учетная запись существует с разными учетными данными), что учетная запись является дубликатом электронной почты и, следовательно, требует функции linkwithcredential
? Я пытался поймать ошибку на signInWithCredential
и _signInWithGoogle()
выше, но безрезультатно.
На основе приведенного здесь примера:
https://github.com/flutter/plugins/blob/06256967e494e6d719023a249c8bdaae4b3ae065/packages/firebase_auth/test/firebase_auth_test.dart
FirebaseUser user = await auth.currentUser();
user = await user.linkWithCredential(credential);
Это то, как вы связываете учетные записи, но мой вопрос: как вы определяете, что эта функция должна быть запущена?
Редактировать: для ясности могу ли я связать учетные записи, когда существует только одна учетная запись / сеанс? Например, поток должен быть, войти с Facebook, поймать (ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL), а затем ссылку на Google.