首页 > 解决方案 > 如何在颤动中使用 facebook 执行 Firebase 身份验证

问题描述

我正在尝试在我的应用中添加 firebase 和 facebook 身份验证。Facebook 身份验证已经完成:

final facebookLogin = FacebookLogin();
final result = await facebookLogin.logInWithReadPermissions(['email']);

switch (result.status) {
  case FacebookLoginStatus.loggedIn:
    final token = result.accessToken.token;
    final graphResponse = await http.get(
        'https://graph.facebook.com/v2.12/me?fields=name,first_name,last_name,email&access_token=$token');
    Map<String, dynamic> user = jsonDecode(graphResponse.body);
    // _onGetFacebookUser(user);

我不知道如何使用 facebook 结果执行 firebase 身份验证。

我已经看过这个答案,但没有帮助,只有 facebook 登录代码示例。我找到了这篇文章,但没有方法signInWithFacebook

标签: facebookfirebaseflutterfirebase-authenticationfacebook-authentication

解决方案


你必须使用凭证

final result = await facebookLogin.logInWithReadPermissions(['email']);

switch (result.status) {
  case FacebookLoginStatus.loggedIn:
    final token = result.accessToken.token;
    AuthCredential fbCredential = FacebookAuthProvider.getCredential(accessToken: token);
    FirebaseAuth.instance.signInWithCredential(credential).then((FirebaseUser user) {
      // do something...
    });
...

升级版:

它适用于flutter_facebook_login2.0.1 版现在对于 3.0.0 版有方法“登录”:

final result = await facebookLogin.logIn(['email']);

推荐阅读