如何在颤动中使用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身份验证[重复]的主要内容,如果未能解决你的问题,请参考以下文章

颤动中的Facebook登录错误:访问令牌错误:“code”:190,“message”:“无效的OAuth访问令牌。”],null)

如何在颤动中处理 Firebase Auth 未处理的异常? [复制]

如何在应用程序关闭时在颤动中执行后台任务?

当列表视图的项目在颤动的视口中可见时,如何更改项目颜色并执行一些操作?

如何在颤动中拦截AppBar中的后退按钮

如何在颤动中获取设备ID