如何为auth设置hash-key选项:在默认的auth:export in firebase中导入?

ezm*_*egy 15 firebase firebase-tools firebase-authentication

我已经在CLI中导出了我的用户:

firebase auth:export my_users.json
Run Code Online (Sandbox Code Playgroud)

导出文件中的密码应使用SCRYPT进行哈希处理,因为文档说明:

auth:export命令仅使用scrypt算法导出密码哈希值,该算法由Firebase后端使用.使用其他算法散列密码的帐户记录将使用空的passwordHash和salt字段导出.从文件导入用户记录后,项目可能会使用其他算法对密码进行哈希处理,因为当导入的用户第一次登录时,密码只会被scrypt重新哈希

我的哈希键和salt字段在结果中不为空.另外,我知道我的所有用户都至少登录过一次.

现在,当我尝试导入my_users.json时:

firebase auth:import --hash-algo=SCRYPT --rounds=1 my_users.json
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Must provide hash key(base64 encoded) for hash algorithm SCRYPT
Run Code Online (Sandbox Code Playgroud)

但是我应该设置什么--hash-key,因为auth:export命令没有接受任何参数?...

提前致谢

Geo*_*all 17

因此,您现在可以从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,
}
Run Code Online (Sandbox Code Playgroud)

然后我可以成功完成命令

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>
Run Code Online (Sandbox Code Playgroud)

  • @nalply 你找到解决方案了吗?我面临着同样的问题。我想要一个通用密码,即“123456789”,供我要导入的所有新用户使用。但是如何告诉 firebase 我找不到这个? (2认同)