Я реализовал вход в Facebook через Firebase в своем приложении flutter (Android только сейчас), следуя инструкциям на https://developers.facebook.com/docs/facebook-login/android.
Когда я запускаю приложение и пытаюсь войдите, я получаю сообщение об ошибке ниже
Ошибка возникает перед входом в Firebase, только часть Facebook на
final FacebookLoginResult result = await facebookSignIn.logIn(['email']);
Я использовал поведение входа в систему по умолчанию и попытался принудительно запустить веб-просмотр, который не помог.
Я перепроверил все детали, такие как идентификатор приложения, манифест. xml файл, строки. xml хэши файлов и ключей (md5), ключи подписи, URL обратного вызова и ошибок не обнаружено. Ошибка не отображается в журнале, а только на экране приложения (экран входа в Facebook).
Мой flutter do c как показано ниже
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 1.20.0-1.0.pre.42, on Microsoft Windows [Version 10.0.18362.900], locale en-IN)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 3.4)
[√] VS Code (version 1.46.1)
[√] Connected device (1 available)
• No issues found!
Код реализации входа в систему показан ниже
static final FacebookLogin facebookSignIn = new FacebookLogin();
Future<FirebaseUser> _loginFB(BuildContext fbContext) async {
facebookSignIn.loginBehavior = FacebookLoginBehavior.webViewOnly;
final FacebookLoginResult result = await facebookSignIn.logIn(['email']);
switch (result.status) {
case FacebookLoginStatus.loggedIn:
final fbAuthCred = FacebookAuthProvider.getCredential(
accessToken: result.accessToken.token);
// final FacebookAccessToken accessToken = result.accessToken;
AuthResult authResult = await _auth.signInWithCredential(fbAuthCred);
final FirebaseUser user = authResult.user;
assert(!user.isAnonymous);
assert(await user.getIdToken() != null);
final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
return currentUser;
break;
case FacebookLoginStatus.cancelledByUser:
Scaffold.of(fbContext)
.showSnackBar(SnackBar(content: Text('Login cancelled by user')));
return null;
break;
case FacebookLoginStatus.error:
Scaffold.of(fbContext).showSnackBar(SnackBar(
content: Text('Error from facebook ${result.errorMessage}')));
return null;
break;
}
}
Любая помощь будет принята с благодарностью. Спасибо.