【问题标题】:Uncaught Error in onSnapshot: FirebaseError: Missing or insufficient permissions. Rules includedonSnapshot 中未捕获的错误:FirebaseError:缺少权限或权限不足。包含的规则
【发布时间】:2021-09-12 01:03:16
【问题描述】:

我知道这是项目的 firebase 规则出现的问题,但我不知道为什么会这样。我正在尝试获取路径中当前文档的快照,但我收到了 firebase 权限错误

这是代码,请注意这是使用 nuxt vue,我刚刚开始使用框架,所以这可能很奇怪,但据我了解这应该可以工作:

mounted(){
      this.getPosts();
    },
    methods:{

      getPosts(){
        database.collection('blog').doc('yP6aYXvisFbTsqtQ3MEfuyz6xYE3').collection('posts').onSnapshot(snapshot =>{
          console.log(snapshot)
        })
      }
    }

这些是规则:

match /blog {
      allow read;
      allow write: if request.auth.uid == 'BoTJcdHh9ogYZUWEaKWbEkuPzTJ2'
    }

我的理解是这条路径中的任何东西都应该可以被读取但是权限错误仍然显示。

【问题讨论】:

    标签: javascript firebase google-cloud-firestore firebase-security


    【解决方案1】:

    您需要在文档级别设置规则,而不是集合。

    例如:

    match /blog/{blogId}/posts/{postId}  {
            allow read;
        }
    

    来自文档:

    所有匹配语句都应该指向文档,而不是集合。一种 match 语句可以指向一个特定的文档,如 match /cities/SF 或使用通配符指向指定文件中的任何文件 路径,如匹配 /cities/{city}。

    在此处阅读更多信息:https://firebase.google.com/docs/firestore/security/rules-structure

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2019-05-04
      • 2021-03-10
      • 2020-10-27
      • 2021-07-01
      相关资源
      最近更新 更多