【问题标题】:Firebase rule auth.token.email is not working: "Simulated write denied"Firebase 规则 auth.token.email 不起作用:“模拟写入被拒绝”
【发布时间】:2018-04-17 12:44:47
【问题描述】:

https://firebase.google.com/docs/reference/security/database/#authtokenF

{
  "rules": {
    "c":{
      ".write":"newData.child('email').val()=== auth.token.email"
    },
   }
}

总是显示“模拟写入被拒绝”
如何解决这个问题呢 ?我的firebase规则有什么错误

【问题讨论】:

  • 请编辑您的问题以在收到错误时显示模拟器。确保它包含重现问题所需的信息,因此:1)您正在写入的路径,2)您正在写入的数据,3)您指定的身份验证令牌。
  • 我分享了截图请查收

标签: firebase-authentication


【解决方案1】:

您似乎没有在身份验证数据中提供电子邮件地址。

当您选择提供程序时,模拟器会显示它将使用的确切 auth.token 有效负载。对于Google 提供程序,我的身份验证令牌有效负载如下所示:

模拟器采用此处显示的文字 JSON,并将其用作 auth.token

{
  "provider": "google",
  "uid": "27e08474-4e33-460d-ba92-ba437c6aa962"
}

由于没有提供电子邮件,您的规则(正确)失败。

为了测试此场景,您需要切换到自定义提供程序,以便您可以使用电子邮件属性指定您自己的身份验证令牌:

【讨论】:

  • 看来这是正确的答案。自定义令牌有效负载中缺少电子邮件属性。
猜你喜欢
  • 2018-01-20
  • 2019-03-10
  • 2020-08-16
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2016-11-27
  • 1970-01-01
  • 2016-11-15
相关资源
最近更新 更多