将用户迁移到firebase auth,在登录前强制生成uid

时间:2017-10-23 16:08:43

标签: firebase authentication firebase-authentication

我们正在构建一个即将推出的应用,用户可以使用Firebase(Google和Facebook)进行身份验证。以前我们运行了一个网站来预先注册用户。在这个网站上,用户可以通过谷歌和Facebook进行身份验证。在网站上,我们还没有使用过Firebase身份验证。

问题是应用程序中的很多代码都在firebase auth uid上运行。如果已登录网站的用户通过该应用与其他用户联系,我们会使用Firebase uid进行连接。如果用户在网站上注册后未登录应用程序,则会出现此问题。 (我们保留在后端的uid从FB或Google uid更改为Firebase uid)。

我们应该如何将网站上的用户连接到firebase中的用户?有没有办法可以预测/迫使uid得到我们可以控制的东西? 理想情况下,网站上的注册在上线后仍然可以使用。

2 个答案:

答案 0 :(得分:0)

您可以设置一个服务器,您可以使用Firebase Admin SDK创建用户。默认情况下,会创建一个随机uid,但您可以选择指定特定的uid。这是使用Node.js的网站示例:

admin.auth().createUser({
  uid: "some-uid",
  email: "user@example.com",
  phoneNumber: "+11234567890"
})
  .then(function(userRecord) {
    // See the UserRecord reference doc for the contents of userRecord.
    console.log("Successfully created new user:", userRecord.uid);
  })
  .catch(function(error) {
    console.log("Error creating new user:", error);
  });

如果您喜欢其中一种语言,Admin SDK还提供Java和Python的功能。

答案 1 :(得分:0)

您需要使用Firebase CLI SDK将Google / Facebook用户迁移到Firebase Auth,然后在迁移后使用Firebase对这些用户进行身份验证。在迁移期间,您可以使用这些用户所需的任何UID:https://firebase.google.com/docs/cli/auth#authimport