如何在颤动中使用facebook执行firebase身份验证[重复]

Posted

技术标签:

【中文标题】如何在颤动中使用facebook执行firebase身份验证[重复]【英文标题】:How can I perform firebase authentication with facebook in flutter [duplicate] 【发布时间】:2019-09-24 18:12:42 【问题描述】:

我正在尝试在我的应用中添加 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 身份验证。

我已经看过this answer,但是没有用,只有facebook登录代码示例。 我找到了this article,但是没有方法signInWithFacebook

【问题讨论】:

【参考方案1】:

你必须使用凭证

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...
    );
...

UPD:

flutter_facebook_login 2.0.1 版运行良好 目前对于 3.0.0 版,有方法“登录”:

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

【讨论】:

The method 'logInWithReadPermissions' isn't defined for the class 'FacebookLogin' 这是旧版本的。对于新的 - 我已经更新了答案 如何将 Facebook 与 graphResponse 结合以获得更多信息? result.accessToken.toMap() 这可以为您提供更多信息

以上是关于如何在颤动中使用facebook执行firebase身份验证[重复]的主要内容,如果未能解决你的问题,请参考以下文章