是否可以将身份验证数据导入 Firebase 模拟器?

Raf*_*sas 4 firebase firebase-tools firebase-authentication

我定期更新 emulator\xe2\x80\x99s Firestore 数据,使其尽可能接近生产环境。

\n

我最近在打开身份验证模拟器的情况下更新了自定义声明逻辑。我的所有用户都无法通过 uid 从 Admin Auth SDK 访问(因为它们在模拟器中是\xe2\x80\x99t)。

\n

根据文档更新声明:

\n
\ngetAuth()\n  .setCustomUserClaims(uid, { admin: true })\n  .then(() => {\n    // The new custom claims will propagate to the user\'s ID token the\n    // next time a new one is issued.\n  });\n\n
Run Code Online (Sandbox Code Playgroud)\n

我(愚蠢地)通过关闭 Auth Emulator 解决了这个问题,该模拟器在开发和测试时修改了生产用户的自定义声明。

\n

有没有办法像 Firestore 一样导出身份验证数据并导入模拟器?

\n

或者,

\n

在 Auth 模拟器中创建假用户时,有没有办法指定 uid(以匹配 Firestore)?

\n

小智 5

将产品身份验证数据导出到模拟器身份验证的问题的简化答案。第一次运行

firebase auth:export FILENAME --format json
Run Code Online (Sandbox Code Playgroud)

现在,您的产品用户有了一个 json。接下来,使用以下命令运行模拟器:

firebase emulators:start --import EMULATOR_DATA_FOLDER_NAME --export-on-exit
Run Code Online (Sandbox Code Playgroud)

关闭模拟器。现在,在模拟器数据文件夹中,您应该会看到正在运行的每个模拟器的文件夹。转到 auth_exports 文件夹以查看您的accounts.json。只需用从初始命令中获得的导出用户替换该文件夹内的用户数组即可。当您运行新的模拟器实例时,如果您希望包含更改,请务必使用与上面相同的启动命令来启动它。