我知道这是项目的 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'
}
我的理解是应该能够读取此路径中的任何内容,但仍然显示权限错误。
答案 0 :(得分:1)
您需要在文档级别设置规则,而不是集合。
例如:
match /blog/{blogId}/posts/{postId} {
allow read;
}
来自文档:
<块引用>所有匹配语句都应该指向文档,而不是集合。一种 match 语句可以指向特定的文档,如 match /cities/SF 或使用通配符指向指定文件中的任何文件 路径,如匹配 /cities/{city}。
在此处阅读更多信息:https://firebase.google.com/docs/firestore/security/rules-structure