You need to enable JavaScript to run this app. 如何将从Firebase导出的Auth数据导入Firebase模拟器?
优惠活动
大模型
产品
解决方案
定价
更多

如何将从Firebase导出的Auth数据导入Firebase模拟器?

Firebase模拟器导入官方服务Auth导出数据方案

首先明确:Firebase官方模拟器不支持直接导入从Firebase生产服务导出的原生Auth数据,二者的导出结构不兼容。你可以通过格式转换的方式完成导入,具体操作如下:

操作步骤

  • 第一步:导出生产环境Auth数据
    确认本地已安装gcloud CLI并登录对应项目账号,执行导出命令:

    gcloud firebase auth users export ./prod_auth_export.json --project 你的项目ID
    

    导出的JSON文件就是全量生产Auth用户数据。

  • 第二步:转换为模拟器兼容格式
    模拟器仅识别自身导出的特定结构数据,你需要编写简单脚本把生产导出的字段做映射。以下是Node.js版本的极简转换示例:

    const prodAuth = require('./prod_auth_export.json');
    const fs = require('fs');
    
    const emulatorAuth = {
      users: prodAuth.users.map(prodUser => ({
        localId: prodUser.localId,
        email: prodUser.email,
        emailVerified: prodUser.emailVerified,
        displayName: prodUser.displayName,
        photoUrl: prodUser.photoUrl,
        passwordHash: prodUser.passwordHash,
        passwordSalt: prodUser.salt,
        createdAt: Number(prodUser.createdAt),
        lastLoginAt: Number(prodUser.lastLoginAt),
        providerUserInfo: prodUser.providerUserInfo || []
      }))
    };
    
    // 导出为模拟器要求的文件结构,放在auth_export目录下
    fs.mkdirSync('./emulator_data/auth_export', { recursive: true });
    fs.writeFileSync('./emulator_data/auth_export/users.json', JSON.stringify(emulatorAuth, null, 2));
    
  • 第三步:导入到模拟器
    启动模拟器时直接指定数据目录即可自动识别Auth数据:

    firebase emulators:start --import ./emulator_data
    

    如果需要启动后导入,执行命令:

    firebase emulators:import ./emulator_data
    

注意事项

  • 生产环境导出的密码哈希为Firebase专属SCRYPT加密格式,模拟器原生支持识别,导入后用户可以直接用生产环境的原密码在模拟器中登录,不需要额外处理密码字段
  • 如果不需要保留用户原始密码,也可以直接调用Firebase Admin SDK批量读取生产环境用户,再批量写入模拟器Auth服务,不需要手动做格式转换

内容的提问来源于stack exchange,提问作者stackbeats

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 07:06:03