使用自定义声明导入 Firebase 用户

Posted

技术标签:

【中文标题】使用自定义声明导入 Firebase 用户【英文标题】:Import Firebase User with Custom Claims 【发布时间】:2020-01-30 19:10:42 【问题描述】:

我正在尝试按照 docs available here 使用 firebase CLI 导出和导入用户。我的问题是我还想导出用户声明,或者至少能够在导入用户时包含自定义声明。

基本上导出我在 CLI 上运行:

firebase auth:export test.json --format=json

要导入我在 CLI 上运行:

firebase auth:import test.json \ --hash-algo:scrypt

导出的用户不持有自定义声明信息。

目前,我正在处理 2 个自定义声明,管理员和访问权限,与 described here 差不多。

问题是我无法在没有返回错误的情况下将声明包含在文件中。使用自定义声明导入用户是否可行,如果不可行,正确的程序是什么?

【问题讨论】:

你能分享一些代码吗?像这样很难理解你的问题 添加了关于我在 cli 上运行的代码的信息,这是文档中提到的内容。 可以确认auth:export 不包含自定义声明。 这里有同样的问题。希望在导出 auth 用户时获得用户声明,但找不到方法。 【参考方案1】:

如果 CLI 未导出声明,则您必须使用 Firebase Admin SDK 到 work with custom claims。您的代码将迭代每个 UID,获取声明并将它们存储在某处,然后在需要导入时更新声明。

【讨论】:

不是我正在寻找的解决方案。第一次部署应用程序时,我必须能够与具有管理员声明的用户一起部署它,否则该用户将永远无法登录。这个想法类似于部署应用程序,如 Joomla、Wordpress 等。您设置管理员用户的信息以便继续。 如果 CLI 没有按照您想要的方式执行导入和导出,我会说这可能是您唯一的选择,除非您想修改 CLI。源代码在这里:github.com/firebase/firebase-tools

以上是关于使用自定义声明导入 Firebase 用户的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 自定义声明不会传播

从 Flutter 为 Firebase 身份验证设置自定义声明

如何在 Firebase 中创建基于角色的访问控制或自定义声明

AD B2C 自定义策略自定义声明出现错误“无法验证提供的信息”。注册时

使用 firebase_messaging 自定义通知(Android 和 IOS)

Firebase 自定义声明 IOS 和 swift