【问题标题】:Firebase database permission denied when rules were changed更改规则时,Firebase 数据库权限被拒绝
【发布时间】:2021-01-23 19:03:46
【问题描述】:

更新这样的规则后,我无法在 react native 应用程序中访问 firebase 数据库

{
  "rules": {
     "main_data":{
         "$uid": {
           "xx1":{
             ".read": "auth != null && auth.uid == $uid",
             ".write": "auth != null && auth.uid == $uid",
           },
             "xx2":{
             ".read": "auth != null && auth.uid == $uid",
             ".write": "auth != null && auth.uid == $uid",
             }
        },
    },
  }
}

我有类似的 json 结构

main_data:{
    {"uid":{
       "xx1":{"id":"uid","d2":"val2","d3":"val3","d4":"d4","d5":"val5","d6":"val6"}
      },
       "xx2":"value"}
   }

我在 react native 应用程序中遇到了这个错误

@firebase/database: FIREBASE WARNING: update at /main_data/UID failed: permission_denied

我通过以下代码访问它

firebase.database().ref('main_data').child(UID).child("xx1 or xx2")
            .on("value", data=>{
                console.log(data)
            })

更新 : 忘记分享写代码了

 firebase.database().ref('main_data/' + UID).update({
    xx2: "Some_value",
 }).then(() => {
    console.log("Success!!")
 }).catch((e) => {                                                                        
    console.log(e)
 })

【问题讨论】:

  • 警告涉及“更新”,而您的代码仅显示您尝试读取数据的方式。
  • 我不明白,因为在我的云功能中,权限被拒绝作为输出接收
  • 感谢更新代码,但这还不足以提供帮助。我们看不到 UID 是如何初始化的,错误消息使它看起来像是一个硬编码的字符串值,我们不知道您是如何初始化 Cloud Functions 的。请不要只从您的代码中给我们 sn-p。而是孤立地重现问题,然后给我们完整但最小的 repo。另见how to create a minimal, complete, verifiable example
  • 它很好,现在它解决了它是我项目中不同的firebase包的问题

标签: javascript firebase firebase-realtime-database firebase-security


【解决方案1】:

我浪费时间解决了,,实际上是我在项目中使用的包不匹配问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2018-02-20
    • 2020-08-16
    • 1970-01-01
    • 2020-12-29
    • 2020-10-16
    • 2020-04-13
    • 2021-08-26
    相关资源
    最近更新 更多