如何使用电子邮件/密码将现有应用程序的用户导入 firebase 的简单登录。
我有键和散列以及包含用户数据的用户集合。是否可以只导入它或者我必须使用firebase的用户api。
如何使用电子邮件/密码将现有应用程序的用户导入 firebase 的简单登录。
我有键和散列以及包含用户数据的用户集合。是否可以只导入它或者我必须使用firebase的用户api。
当前将现有用户帐户从其他服务导入 Firebase 以在 Firebase 简单登录中使用的最佳方法是调用createUser(email, password, callback)
每个电子邮件地址/密码组合,前提是您拥有它们。目前没有开箱即用的方法将用户电子邮件地址和密码哈希导入 Firebase 简单登录,尽管 ping support@firebase.com 可能有办法做到这一点。
如果您已经拥有想要继续使用的现有身份验证机制,而不是使用 Firebase 简单登录,请查看自定义令牌生成,这将允许您继续使用现有身份验证。这将要求您在每个用户进行身份验证时生成 JSON Web 令牌 (JWT),然后可以在您的安全规则中使用此令牌的有效负载,如下所述:https ://www.firebase.com/docs/security/security -rules.html。
自 2019 年 11 月起更新
第一步,确保安装 Firebase Tools,这个命令npm install -g firebase-tools
,我假设你已经安装Node.js
过npm
。
在您的终端中点击firebase login
以登录到您要从中导出的帐户(顺便说一句,您可能已经登录)。
使用 导出您的电子邮件和密码firebase auth:export database.json --project projectName
。
现在firebase logout
到firebase login
您要导入的帐户。
转到您要从中导出的项目的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,
}
在您的终端运行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
. 注意:我没有在字符串中使用引号,而且效果很好。
测试您的身份验证是否适用于新环境。可能很明显,但不要忘记改变你firebaseConfig
的新项目:)
编辑:
澄清它适用于哪个 Firebase 工具版本:
$ firebase --version
7.6.1
现在可以在 Firebase v3.x 中导出/导入用户。您所要做的就是安装 Firebase CLI(Firebase 工具),在您的机器上设置一个文件夹,代表您的 Firebase 项目的工具镜像。(就像firebase init
在适当的文件夹中一样简单)
导出:auth:export
导入:auth:import
更新:在我写这个答案的时候,上面链接中给出的例子auth:import
有 2 件丢失:hash key
和salt separator
,您可以向客户支持咨询。也许他们将来会通过工具或控制台共享它。