为 Firestore 创建的每个用户的自定义 UID

2024-05-22

请注意,这个问题与问题相同here https://stackoverflow.com/questions/41155905/firebase-authentication-email-password-how-to-set-users-uid。我对答案不满意,这就是我重新提问的原因。

我的问题是,我有大量数据存储在外部 API 中,每个数据都有唯一的 ID。我已将此数据导入到 firestore 中的一个单独文档(假设为用户)中,我将从那里将其访问到自定义应用程序中。另外,我有身份验证。我希望为用户文档中的每个用户创建一个特定的 uid,而不是从 Firebase 自动生成的 uid。

这可能吗?如果没有,那我该怎么办?


Firebase 身份验证用户的 UID 由最初创建该用户的提供商确定。

这意味着控制 UID 的唯一方法是创建一个定制提供商 https://firebase.google.com/docs/auth/web/custom-auth。请注意,这要求您运行为受信任环境(例如您的开发计算机、您控制的服务器或 Cloud Functions)中的用户创建自定义令牌的代码。在该环境中,您可以调用createCustomToken API https://firebase.google.com/docs/auth/admin/create-custom-tokens#create_custom_tokens_using_the_firebase_admin_sdk,您可以在其中传递您选择的 UID。有关此示例,请参阅此自定义用户名/密码提供商 https://github.com/firebase/functions-samples/blob/master/username-password-auth/functions/index.js#L85使用用户名作为其 UID。

如果您不想创建自定义提供程序,则唯一的选择是维护您拥有的 ID 与 Firebase 生成的 UID 之间的映射。例如,您可以使用 Firebase UID 存储一个文档,然后在其中有一个包含您自己的该用户 ID 的字段,以便您可以双向查找信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Firestore 创建的每个用户的自定义 UID 的相关文章

随机推荐