如何使用电子邮件/密码将现有应用的用户导入firebase的简单登录。
我有密钥和哈希以及包含用户数据的用户集合。可以只导入它,还是必须使用firebase的用户API。
答案 0 :(得分:3)
将现有用户帐户从其他服务导入Firebase以便在Firebase简单登录中使用的当前最佳方法是为每个电子邮件地址/密码组合调用createUser(email, password, callback)
,前提是您拥有它们。目前没有现成的方法可以将用户电子邮件地址和密码哈希导入到Firebase简单登录中,但ping support@firebase.com可能有办法实现此目的。< / p>
如果您已经拥有要继续使用的现有身份验证机制,而不是使用Firebase简单登录,请查看custom token generation,这样您就可以继续使用现有身份验证。这将要求您在每个用户进行身份验证时生成JSON Web令牌(JWT),然后可以在您的安全规则中使用此令牌的有效负载,如下所述:https://www.firebase.com/docs/security/security-rules.html。
答案 1 :(得分:1)
现在可以在Firebase v3.x中导出/导入用户。您所要做的就是安装Firebase CLI(Firebase工具),在您的计算机上设置一个文件夹,代表Firebase项目的工具镜像。 (在适当的文件夹中就像firebase init
一样简单)
导出:auth:export
要导入:auth:import
更新:在我撰写此答案的时候,上面的auth:import
链接中的示例有2个缺失:hash key
和salt separator
,你可以从客户支持部门询问。也许他们将来会用工具或控制台分享它。
答案 2 :(得分:0)
自11/2019起更新
非常第一步,请确保安装Firebase Tools(此npm install -g firebase-tools
的命令),我假设您之前已经安装了Node.js
和npm
。
在终端机firebase login
中单击以登录到要导出的帐户(您可能已经登录了btw)。
使用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 Tools版本:
$ firebase --version
7.6.1