我对Cloud Firestore尤其是安全角色还很陌生,但是由于它们非常重要,所以我宁愿开始围绕它们的新项目构建。
现在作为基本的见解,我有一个仪表板,用户必须使用其电子邮件地址和密码登录,然后他们才能访问诸如区域信息之类的数据。首先从安全规则入手,我以为我会从简单开始,但正如标题所指出的那样:
Error: Missing or insufficient permissions
我看过https://firebase.google.com/docs/firestore/solutions/role-based-access
service cloud.firestore {
match /databases/{database}/documents {
match /regions/{region} {
function isSignedIn() {
return request.auth != null;
}
function getRole(rsc) {
// Read from the "roles" map in the resource (rsc).
return rsc.data.roles[request.auth.uid];
}
function isOneOfRoles(rsc, array) {
// Determine if the user is one of an array of roles
return isSignedIn() && (getRole(rsc) in array);
}
// Any role can read regions.
allow read: if isOneOfRoles(resource, ['owner', 'writer', 'commenter', 'reader']);
}
}
}
我有一个区域集合,每个区域都有一个标题,以及一个角色地图,例如:
roles: {
(uid): "owner",
(uid2): "writer",
(uid3): "reader",
}
感谢您的帮助,我觉得我缺少真正简单的东西。 isSignedIn()
的检查有效,但角色的检查无效。