Firebase auth:import (v 3.2.1) 无法导入 Parse 用户

Firebase auth:import (v 3.2.1) fails importing Parse users

我正在关注 Firebase 的文档, https://firebase.google.com/support/guides/parse-ios#migrate-accounts,将我导出的 Parse 用户迁移到 Firebase。

firebase auth:import --debug --hash-algo BCRYPT ../sample.json

它在所有记录上失败并出现相同的错误:

Error: HTTP Error: 400, Invalid value for ByteString: a$FGbVQ4bhehr6Z2XBoiF9BO2H.3EXTV9pRRf2ahHFimltnOg1oagPO

我已通过使用此在线工具重新散列已知密码来验证散列是正确的 https://www.dailycred.com/article/bcrypt-calculator

此外,当我删除 passwordHash 字段以查看是否可以让导入工作时,确实如此,但是尽管在详细的调试控制台输出中看到了电子邮件字段,但它们仍然丢失了:

>>> HTTP REQUEST POST https://www.googleapis.com/identitytoolkit/v3/relyingparty/uploadAccount users=[email=xxxxx+jsonimport@gmail.com, localId=1, displayName=jasonimport], hashAlgorithm=BCRYPT, targetProjectId=comicchameleon-2813e

您应该对 bcrypt 哈希字符串进行 base64 编码,并将编码后的字符串设置为 passwordHash。这已记录在案 here

下面的NodeJs代码可以做base64编码。

new Buffer('a$FGbVQ4bhehr6Z2XBoiF9BO2H.3EXTV9pRRf2ahHFimltnOg1oagPO').toString('base64');

我不确定丢失电子邮件的原因是什么。你能把你的 sample.json 粘贴到这里吗?