哪种uid最适合用于Firebase Firestore用户文档ID?

时间:2020-03-06 12:21:34

标签: firebase google-cloud-firestore firebase-authentication

我有一个Firebase项目,为此我创建了一个Firebase Firestore数据库。我使用firebase auth登录用户。 我希望所有引用特定用户的文档的ID都等于用户uid。 首先,我将文档ID设置为FirebaseAuth.FirebaseUser.uid 这样做的问题是FirebaseUser.uid在某些情况下可以更改(例如,用户更改了他的Google帐户密码) 无论身份验证提供程序,是否都可以使用永久uid来引用特定用户?如果没有,最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

通常,对于Firebase Auth中的给定用户,用户唯一ID(由Auth服务生成的uid)将永远不会改变。

例如,您可以使用Admin SDK更改用户的电子邮件,而无需更改其uid,请参阅此doc

对于同一个帐户,您还可以有多个身份提供者,并且使用相同的uid,请参见here

您可以使用以下几种方法将用户登录到您的应用程序:电子邮件 地址和密码,联合身份提供者以及您的自定义 身份验证系统。您可以将多个登录方法与一个 用户:例如,用户可以使用 电子邮件地址和密码,或使用Google登录

请注意,更改身份提供商帐户的密码(例如,您提到的“更改Google帐户密码”)对uid或其他user account elements都没有任何影响(实际上,身份提供商密码为不会存储在Firebase身份验证中。


因此,总而言之,使用由Auth服务生成的uid 是满足您要求的最佳解决方案