Firebase 身份验证导入是不是会保留给定的 UID?
Posted
技术标签:
【中文标题】Firebase 身份验证导入是不是会保留给定的 UID?【英文标题】:Does Firebase Auth import persist the given UID?Firebase 身份验证导入是否会保留给定的 UID? 【发布时间】:2021-02-19 18:31:10 【问题描述】:我正在将 70,000 多名用户从旧的 SQL 数据库服务器迁移到 Firebase。除此之外,还有他们的帖子、cmets、喜欢、关注者等等。
我尝试使用简单的FirebaseAuth.instance.createUserWithEmailAndPassword
但后来我得到了
[firebase_auth/too-many-requests] 由于异常活动,我们已阻止来自此设备的所有请求。请稍后再试。
然后我找到了 FirebaseAuth 导入用户here。而且这似乎是正确的方法。
但是这种方法需要我们提供 UID。但是在我的例子中,前一个用户的 id 是一个 SQL 自动增量 id。 (我们不希望在 Firebase 中使用这种 id。这就是我使用前一种方法的原因,即在迁移所有其他数据之前从 FirebaseAuth 获取 UID。) 所以现在如果我要使用 FirebaseAuth 导入机制,我需要自己创建新的 UID(可能通过散列电子邮件),然后在所有数据(即:帖子、cmets、喜欢等)中使用这个新生成的 UID 来识别拥有它们的用户。
但问题是:FirebaseAuth 导入机制会永远保留给定的 UID 吗?因为根据this post,FirebaseAuth 将生成一个新的 UID(出于安全考虑,这可能是有意义的)。 摘录在这里:
您不能创建用户帐户,然后让用户使用相同的 UID“注册”。
如果我理解正确,那么对我来说这将是一场灾难,因为我将丢失对用户帖子、cmets 和所有其他内容的所有引用。
我试图阅读文档,但这里没有任何关于这一点的说明。
如果原始给定的 UID 没有保留,那么还有其他方法可以迁移用户吗?
【问题讨论】:
我有点困惑。您是从旧服务器迁移到 Firebase 身份验证,还是已经在使用 Firebase 身份验证? 从旧版服务器 (SQL) 迁移到 FirebaseAuth。让我解决问题 【参考方案1】:您的用例与 Hiranya 在链接中回答的用例不同。他们在那里实施了电子邮件邀请系统,而您“只是”重要的用户。
一旦用户存在于 Firebase 身份验证中,他们的 UID 就永远不会改变。因此,如果您在将用户导入 Firebase 身份验证时为其提供特定的 UID,他们将永远拥有该 UID。
【讨论】:
以上是关于Firebase 身份验证导入是不是会保留给定的 UID?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有身份验证的情况下添加 Firebase 数据库规则?
将 Wordpress 用户导入 Firebase 身份验证
如何在启用电话身份验证的情况下导出 Firebase 用户帐户
.onAuthStateChanged 方法是不是计入 Firebase 身份验证验证?