我已经在CLI中导出了我的用户:
firebase auth:export my_users.json
导出文件中的密码应使用SCRYPT进行哈希处理,因为文档说明:
auth:export命令仅使用scrypt算法导出密码哈希值,该算法由Firebase后端使用。使用其他算法散列密码的帐户记录将使用空的passwordHash和salt字段导出。从文件导入用户记录后,项目可能会使用其他算法对密码进行哈希处理,因为当导入的用户第一次登录时,密码只会被scrypt重新散列
我的哈希键和salt字段在结果中不为空。 此外,我知道我的所有用户都至少登录过一次。
现在,当我尝试导入my_users.json时:
firebase auth:import --hash-algo=SCRYPT --rounds=1 my_users.json
我收到以下错误:
Must provide hash key(base64 encoded) for hash algorithm SCRYPT
但是我应该设置什么--hash-key,因为auth:export命令没有接受任何参数? ...
提前致谢
答案 0 :(得分:12)
因此,您现在可以从firebase控制台GUI获取哈希键和salt信息。 由于某些原因,我不得不在chrome中输入隐身模式(firebase支持建议这样做)。
然后我可以在隐身浏览器中登录我的firebase控制台。
(请注意,您需要使用要复制用户的firebase实例 来自,而不是您正在复制用户的那个)
点击身份验证 - >用户 然后单击重新加载按钮旁边的三个垂直点,弹出菜单将显示一个菜单项:"密码哈希参数"。
单击此菜单项以及执行此操作所需的所有设置 firebase auth:将显示import命令。 这就是我所看到的:
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 ./users.json --hash-algo=scrypt --rounds=8 --mem-cost=14 --hash-key=<long string of random characters> --salt-separator=<short string of random characters>
答案 1 :(得分:0)
请参阅Firebase文档-“ Firebase身份验证密码哈希”: https://firebaseopensource.com/projects/firebase/scrypt/
查找密码哈希参数
Firebase为每个Firebase项目生成唯一的密码哈希参数。要访问这些参数,请导航至Firebase控制台“身份验证”部分的“用户”标签,然后从“用户”表右上角的下拉菜单中选择“密码哈希参数”。
很不幸,似乎没有选择通过cli获取哈希参数。因此,我想GUI是唯一的方法(如their answer上的Geoffrey Wall所述)。