9

如何使用电子邮件/密码将现有应用程序的用户导入 firebase 的简单登录。

我有键和散列以及包含用户数据的用户集合。是否可以只导入它或者我必须使用firebase的用户api。

4

3 回答 3

3

当前将现有用户帐户从其他服务导入 Firebase 以在 Firebase 简单登录中使用的最佳方法是调用createUser(email, password, callback)每个电子邮件地址/密码组合,前提是您拥有它们。目前没有开箱即用的方法将用户电子邮件地址和密码哈希导入 Firebase 简单登录,尽管 ping support@firebase.com 可能有办法做到这一点。

如果您已经拥有想要继续使用的现有身份验证机制,而不是使用 Firebase 简单登录,请查看自定义令牌生成,这将允许您继续使用现有身份验证。这将要求您在每个用户进行身份验证时生成 JSON Web 令牌 (JWT),然后可以在您的安全规则中使用此令牌的有效负载,如下所述:https ://www.firebase.com/docs/security/security -rules.html

于 2013-04-17T07:24:35.027 回答
2

自 2019 年 11 月起更新

  1. 第一步,确保安装 Firebase Tools,这个命令npm install -g firebase-tools,我假设你已经安装Node.jsnpm

  2. 在您的终端中点击firebase login以登录到您要从中导出的帐户(顺便说一句,您可能已经登录)。

  3. 使用 导出您的电子邮件和密码firebase auth:export database.json --project projectName

  4. 现在firebase logoutfirebase login您要导入的帐户。

  5. 转到您要从中导出的项目的Console-> Project-> Authentication-> (这非常重要,如果您要从导入的那个项目中获取参数,它将不起作用)。Password hash parameter

在那里你可以看到类似的东西:

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <long string of random characters>,
  base64_salt_separator: <short string of random characters>,
  rounds: 8,
  mem_cost: 14,
}
  1. 在您的终端运行firebase auth:import database.json --hash-algo=scrypt --rounds=8 --mem-cost=14 --hash-key=<long string of random characters> --salt-separator=<short string of random characters> --project=YOUR_PROJECT_NAME. 注意:我没有在字符串中使用引号,而且效果很好。

  2. 测试您的身份验证是否适用于新环境。可能很明显,但不要忘记改变你firebaseConfig的新项目:)

编辑:

澄清它适用于哪个 Firebase 工具版本:

$ firebase --version
7.6.1
于 2019-11-01T10:50:46.517 回答
1

现在可以在 Firebase v3.x 中导出/导入用户。您所要做的就是安装 Firebase CLI(Firebase 工具),在您的机器上设置一个文件夹,代表您的 Firebase 项目的工具镜像。(就像firebase init在适当的文件夹中一样简单)

导出:auth:export

导入:auth:import

更新:在我写这个答案的时候,上面链接中给出的例子auth:import有 2 件丢失:hash keysalt separator,您可以向客户支持咨询。也许他们将来会通过工具或控制台共享它。

于 2017-03-01T13:24:50.887 回答