我的项目有两个主要的集合:“联系人”和“相册”。
这是我的data structure
我正在尝试将完全读访问权限分配给"albums“集合中的每个人,并将写访问权限限制为未经身份验证的用户。同时,我希望将写访问权限分配给未经身份验证的用户,并将读取、更新、删除权限分配给"contact“集合中经过身份验证的用户。
对于经过身份验证的请求和未经身份验证的请求,当前规则集在规则模拟器中均失败。规则如下:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /contact/{document=**} {
allow create;
allow read, update, delete: if request.auth != null;
}
}
match /albums/{document=**}{
allow read;
allow write: if request.auth != null;
}
}firebase查询返回“onSnapshot: FirebaseError:缺少或权限不足的未捕获错误”。
查询如下:
useEffect(() => {
const unmount = firestore
.collection("albums")
.orderBy("date", "asc")
.onSnapshot((snapshot) => {
const tempAlbums = [];
snapshot.forEach((doc) => {
tempAlbums.push({ ...doc.data(), id: doc.id });
});
setAlbums(tempAlbums);
});
return unmount;
}, []);对如何纠正规则有什么建议吗?
发布于 2020-09-08 15:54:28
你的规则中有一个打字错误。应该是这样的:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /contact/{document=**} {
allow create;
allow read, update, delete: if request.auth != null;
} //The /albums path must be included inside /documents
match /albums/{document=**}{
allow read;
allow write: if request.auth != null;
}
}
}https://stackoverflow.com/questions/63789182
复制相似问题