【问题标题】:Firebase auth:import (v 3.2.1) fails importing Parse usersFirebase auth:import (v 3.2.1) 无法导入 Parse 用户
【发布时间】:2017-05-19 13:42:16
【问题描述】:

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

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

所有记录都失败,错误相同:

错误:HTTP 错误:400,ByteString 的值无效:$2a$10$FGbVQ4bhehr6Z2XBoiF9BO2H.3EXTV9pRRf2ahHFimltnOg1oagPO

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

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

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

【问题讨论】:

    标签: parse-platform firebase firebase-authentication


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢这工作!所以说我不应该只感谢你,所以我会抱怨一件事(如果你确实是 Firebase 的一部分,看起来你可能是)。此页面firebase.google.com/support/guides/parse-ios#migrate-accounts 没有提到对 Parse 中的 bcryptPassword 字段进行 base64 编码,并进一步暗示原始数据应该通过在“转换的”Firebase 输入中使用与 passwordHash 相同的字符串来工作。
    • @Jason 你是如何从 Parse 中导出用户的?
    猜你喜欢
    • 2018-05-25
    • 2022-12-07
    • 2018-12-24
    • 2019-04-22
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多