onSnapshot 中未捕获的错误:FirebaseError:权限缺失或不足。包括规则

时间:2021-06-29 20:17:36

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

我知道这是项目的 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'
    }

我的理解是应该能够读取此路径中的任何内容,但仍然显示权限错误。

1 个答案:

答案 0 :(得分:1)

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

例如:

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

来自文档:

<块引用>

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

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