如何通过Firebase Admin获取用户的Facebook ID?
获取Facebook登录用户的ID(Firebase Admin + Node.js)
嘿,你已经离答案很近啦!从你贴出来的decodedToken结果里,就能直接拿到用户的Facebook ID,具体就藏在firebase.identities['facebook.com']这个字段里。
具体实现步骤:
- 验证完ID Token后,先确认用户的登录方式确实是Facebook(你已经在做这一步啦)
- 从
decodedToken.firebase.identities里取出facebook.com对应的数组,数组里的第一个元素就是用户的Facebook ID
给你写个完整的代码示例:
admin.auth().verifyIdToken(idToken) .then(decodedToken => { // 先确认登录提供者是Facebook if (decodedToken.firebase.sign_in_provider === 'facebook.com') { // 提取Facebook ID const facebookIdentity = decodedToken.firebase.identities['facebook.com']; if (facebookIdentity && facebookIdentity.length > 0) { const facebookUserId = facebookIdentity[0]; console.log("用户的Facebook ID:", facebookUserId); // 在这里用这个ID做后续操作就可以啦 } } }) .catch(error => { console.error("验证ID Token失败:", error); });
补充说明:
为什么是数组呢?因为Firebase允许用户用同一个账号关联多个第三方登录方式,所以每个身份提供者对应的是一个数组。但对于Facebook登录的用户来说,通常只会有一个关联的ID,所以直接取第一个元素就没问题啦。
内容的提问来源于stack exchange,提问作者Hung
相关产品推荐
相关产品推荐

