【问题标题】:How can I perform firebase authentication with facebook in flutter [duplicate]如何在颤动中使用facebook执行firebase身份验证[重复]
【发布时间】: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

【问题讨论】:

    标签: facebook firebase flutter firebase-authentication facebook-authentication


    【解决方案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() 这可以为您提供更多信息
    猜你喜欢
    • 2020-10-23
    • 2017-11-03
    • 2020-03-21
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    相关资源
    最近更新 更多