我正在关注 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: $2a$10$FGbVQ4bhehr6Z2XBoiF9BO2H.3EXTV9pRRf2ahHFimltnOg1oagPO
我已经通过使用此在线工具重新散列已知密码来验证散列是否正确 https://www.dailycred.com/article/bcrypt-calculator .
此外,当我删除 passwordHash
字段以查看是否可以使导入正常工作时,确实如此,但电子邮件字段丢失了,尽管在详细的调试控制台输出中看到了它们:
>>> HTTP REQUEST POST https://www.googleapis.com/identitytoolkit/v3/relyingparty/uploadAccount users=[[email protected], localId=1, displayName=jasonimport], hashAlgorithm=BCRYPT, targetProjectId=comicchameleon-2813e
最佳答案
您应该对 bcrypt 哈希字符串进行 Base64 编码,并将编码后的字符串设置为 passwordHash
。这已记录在案here .
以下NodeJs代码可以进行base64编码。
new Buffer('$2a$10$FGbVQ4bhehr6Z2XBoiF9BO2H.3EXTV9pRRf2ahHFimltnOg1oagPO').toString('base64');
我不确定电子邮件丢失的原因是什么。您可以将您的sample.json 粘贴到此处吗?
关于parse-platform - Firebase auth :import (v 3. 2.1) 导入 Parse 用户失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41477829/