Я реализовал проверку подлинности Firebase на Flutter, и вход в Google, и вход в Facebook.
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = GoogleSignIn();
...
Future<String> authenticateWithGoogle() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
if (googleUser!=null) {
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
return _signInWithCredential(credential);
}
return null;
}
Future<String> _signInWithCredential(AuthCredential credential) {
return _auth.signInWithCredential(credential).then((user) => user.getIdToken());
}
Все они работают на iOS и Android.Единственная проблема заключается в том, что только на iOS пользователя просят войти в учетную запись Google, даже если пользователь уже вошел в систему. Поэтому в других приложениях на том же устройстве, когда пользователи пытаются войти в Google, они переносятся вна странице «Выберите учетную запись», а в моем приложении они перенаправлены на страницу «Вход».
При входе в Facebook это поведение не отображается.