флаттерная регистрация в Google перепуталась между двумя учетными записями Google

#flutter #google-signin

Вопрос:

Я тестирую вход в Google с помощью двух учетных записей Google, скажем aaa@gmail.com и bbb@gmail.com.

Проблема: Даже когда я вхожу в систему с bbb@gmail.com, uid возвращает строку uid для aaa@gmail.com.

Это мой код для входа и выхода.

 GoogleSignIn? _googleSignIn; GoogleSignInAccount? _googleUser; GoogleSignInAuthentication? _googleAuth; OAuthCredential? _credential; UserCredential? _userCredential;  UserCredential? get userCredential =gt; _userCredential;  Futurelt;voidgt; signIn() async {  _googleSignIn = await GoogleSignIn();  _googleUser = await _googleSignIn!.signIn();  print(_googleUser);   // Obtain the auth details from the request  _googleAuth = await _googleUser!.authentication;   // Create a new credential  _credential = GoogleAuthProvider.credential(  accessToken: _googleAuth!.accessToken,  idToken: _googleAuth!.idToken,  );   _userCredential = await FirebaseAuth.instance.signInWithCredential(_credential!);  print(_userCredential); }  void signOut(BuildContext context) async {  if(_googleSignIn != null) await _googleSignIn!.signOut();  await FirebaseAuth.instance.signOut(); }  

Когда я войду в систему с bbb@gmail.com, он печатает правильные учетные данные пользователя (в поле электронной почты указано bbb@gmail.com).

Но когда я вызываю AuthService после входа в систему для получения данных профиля пользователя, он печатает идентификатор пользователя aaa@gmail.com.

Это код для печати идентификатора пользователя.

 class UserProfileService {  static final UserProfileService _instance = UserProfileService._internal();  factory UserProfileService() =gt; _instance;   late final String _uid;  late final firebase_storage.Reference _storage;  late final DatabaseReference _database;   UserProfileService._internal() {  _uid = FirebaseAuth.instance.currentUser!.uid;  _database = FirebaseDatabase.instance.reference().child('/users/$_uid');  _storage = firebase_storage.FirebaseStorage.instance.ref('profile-photo/$_uid.png');  }   Futurelt;boolgt; checkFirstLogin() async {  bool _check = true;  print('check first login');  print('uid: $_uid'); // this code   await (_database.get().then((snapshot) {  if (snapshot.value == null) {  print(snapshot.value);  _check = true;  } else {  print(snapshot.value);  _check = false;  }  }));  return _check;  } }  

Когда я заглядываю в раздел аутентификации моей консоли firebase, там есть отдельная сущность для идентификатора aaa@gmail.com и bbb@gmail.com. bbb@gmail.com имеет свой собственный uid. Я понятия не имею, почему учетные данные для bbb@gmail.com ведет к пользователю aaa@gmail.com.

У кого-нибудь был подобный опыт использования нескольких учетных записей Google в одном эмуляторе?