通过邮递员以管理员身份登录 firebase 实时数据库

问题描述

我为 firebase 实时数据库设置了这些规则

{
  "rules": {
    "adminContent": {
      ".read": true,".write": "auth.token.admin === true",}
  }
}

我已经创建了一个用户并且可以登录 关注这个网址 https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]


{
    "email":"MY EMAIL","password":"MYPASSWORD","returnSecuretoken":true
}

我得到了 idToken 和所有数据。 我在参数中输入: auth | “收到 ID 令牌”

我还在接受

{
    "error": "Permission denied"
}

我猜我应该注册管理员或以管理员身份获取一些数据。

我实际上需要在 React 项目中使用它,但是我在 Postman 中测试了一些东西,我不明白它是如何工作的。

我必须遵守这些规则。

感谢您的帮助。

解决方法

您的安全规则要求用户是管理员:

auth.token.admin === true

但用户登录并不会自动成为管理员,因为这会带来相当大的安全风险。

您需要在将用户标记为管理员的受信任环境中运行代码。此 admin 值称为自定义声明,因此我建议阅读有关 custom claims 的文档,特别是有关 setting custom claims through the Admin SDK 的本部分。

执行此操作后,您下次登录用户时,他们将拥有该 admin 声明并将其传递给安全规则。