基于 Facebook Id 检索 Firebase uid 的最佳实践
Posted
技术标签:
【中文标题】基于 Facebook Id 检索 Firebase uid 的最佳实践【英文标题】:Best practice to retrieve a Firebase uids based on Facebook Ids 【发布时间】:2018-02-15 04:04:07 【问题描述】:是否有 API 或解决方法可以将一组 Facebook id 转换为 Firebase Auth uid?
-
通过 Facebook SDK 将登录用户的好友检索到 Facebook id 列表中。
我将每个用户的附加数据存储在单独的 Firestore 集合中。集合中的文档需要按 Firebase uids 列出用户的 Facebook 好友。
【问题讨论】:
【参考方案1】:没有用于将 Facebook 用户 ID 转换为相应 Firebase 身份验证 UID 的内置 API。
您可以做的是为您使用 Facebook 登录 Firebase 身份验证的每个应用用户创建 UID/Facebook ID 的映射。例如
facebookUsers
facebookId1: firebaseUid1
facebookId2: firebaseUid2
.
.
.
有了这个,您可以通过简单的查找找到每个 Facebook 用户的 Firebase UID(当然,如果他们是您的 Firebase 应用的用户)。 也请参阅这些相关问题:
What value does Firebase Auth Identifier store from Facebook Login If user is not registered with email Mapping Facebook friend id to Firebase uid in realtime database How to store the uid of the Facebook users in Firebase? How to determine if a Firebase user is signed in using facebook authentication【讨论】:
我发现此解决方案存在问题。文档大小限制为 1 MB,因此如果该列表中的每个条目占用 100 个字节,则解决方案将在 10.000 个用户后中断。我自己也有同样的问题,我正在考虑在用户个人资料中设置一个包含 Facebook 用户的字段。但是,如果我从 FB Graph API 获取好友 ID 列表,并且我想查找所有这些用户的 Firebase UID,如果 Facebook UID 存储在每个用户配置文件中,这并不容易。有什么建议可以在不达到 1 MB 文档限制的情况下轻松进行批量查找/转换? 我写这个答案已经有一段时间了,但我不认为我暗示你应该将此地图存储在一个文档中。您可以或者将其存储在文档中或在单独的集合中。正如您所指出的,前者需要较少的读取但具有可扩展性限制,而后者没有可扩展性限制但需要更多读取。每个人都必须选择最适合他们的用例。以上是关于基于 Facebook Id 检索 Firebase uid 的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
从 PFFacebookUtils 中检索 Facebook 的用户 ID