目前,我有一些基本规则可以访问我的Firestore数据库。规则如下。谁能帮助我了解为什么第二段代码会导致权限错误?我正在尝试将图像添加到尚不存在的子集合中。谢谢
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /projects/{project} {
allow read, write: if request.auth.uid != null
}
match /users/{userId} {
allow create
allow read: if request.auth.uid != null
allow write: if request.auth.uid == userId
}
match /notifications/{notification} {
allow read: if request.auth.uid != null
}
}
}
这是我的应用代码:
await firestore.add(
{
collection: "users",
doc: user.uid,
subcollections: [{ collection: "photos" }]
},
{
name: imageName,
url: downloadURL
}
);
答案 0 :(得分:1)
我对“ reduxfirestore”一无所知,但似乎您正在尝试写入用户下的子集合。您的安全规则对子集合中的文档无话可说,因此所有这些查询都将被拒绝。如果您希望能够读写文档,则规则必须匹配其完整路径,如下所示:
match /users/{uid}/photos/{pid} { ... }
在控制台中进行读写操作始终有效,因为它绕过了安全规则。