【问题标题】:How to get Facebook ID from Firebase Admin?如何从 Firebase 管理员获取 Facebook ID?
【发布时间】:2018-10-28 13:59:06
【问题描述】:

我正在使用 Firebase Admin 登录我的 NodeJs 应用程序。客户端将通过发送一个 idToken(从 Firebase 获取)来登录,然后 NodeJs 服务器将使用 admin.auth().verifyIdToken(idToken) 获取用户。

结果将如下所示:

{ iss: 'https://securetoken.google.com/myapp-5cde1',
  name: 'Manh Hung',
  picture: 'https://graph.facebook.com/185960225411xxx/picture',
  aud: 'xxxxxx-5cde1',
  auth_time: 1526626xxx,
  user_id: 'uCxxxxxxxxxxxxxxxQR4d2',
  sub: 'uCwNoxxxxxxxxxxxxxxuQR4d2',
  iat: 15266xxx1,
  exp: 15266xxx91,
  firebase:
   { identities: { 'facebook.com': [Array] },
     sign_in_provider: 'facebook.com' },
  uid: 'uCxxxxxxxxxxxxxxxQR4d2' 
}

是的,我通过“sign_in_provider: 'facebook.com'”得到了用户的注册方法。但我不知道如何获取用户的 Facebook ID。 有人可以给我一个建议吗?非常感谢!

【问题讨论】:

    标签: javascript node.js firebase firebase-authentication


    【解决方案1】:

    ID 令牌中不会提供该特定信息。您将需要使用 Firebase Admin SDK 来查找用户并检查 providerData:

    admin.auth().getUser(uid)
      .then(function(userRecord) {
        // Assuming the first provider linked is facebook.
        // The facebook ID can be obtained as follows.
        console.log(userRecord.providerData[0].uid);
      })
      .catch(function(error) {
        console.log("Error fetching user data:", error);
      });
    

    【讨论】:

    • 是的,这也解决了我的问题,我需要电子邮件地址,getUser(uid) 也返回。
    猜你喜欢
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多