提问者:小点点

如何从Firebase Admin获取FacebookID?


我正在使用Firebase Admin在我的NodeJs应用程序中登录。客户端将通过发送idToken(从Firebase获取)进行登录,然后NodeJs服务器将使用admin. auth().verizyIdToken(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'”获得了用户的注册方式。但是我不知道如何获得用户的脸谱网ID。有人能给我一个建议吗?非常感谢!


共1个答案

匿名用户

该特定信息在ID令牌中不可用。您需要使用Firebase管理SDK查找用户并检查提供程序数据:

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