Firestore 安全规则:权限不足
Firestore Security Rules: Insufficient permissions
我需要一些帮助来制定我的 firestore 工作安全规则。
这些是我的 Firestore 规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
function isAdmin(uid) {
return (uid in get(/admin/administrators).data.uid)
}
allow read;
allow write: if request.auth.uid != null && isAdmin(request.auth.uid);
}
}
}
在文档 /admin/administrators
中有一个名为 uid
的字段,其中包含允许写入数据库的管理员 UID 数组。
在我以这样的管理员身份登录并尝试将文档添加到另一个集合后。 (具体来说,我的 Angular 应用程序中使用 Angularfire 2 的调用是 this.afStore.collection(collection).add({});
)我收到错误 Error: Missing or insufficient permissions
.
感谢任何帮助(包括"there's obviously a better way to do this")
您应该输入您要引用的集合的绝对路径。将 (uid in get(/admin/administrators).data.uid)
更改为 get(/databases/$(database)/documents/admin/$(request.auth.uid)).data.uid
我需要一些帮助来制定我的 firestore 工作安全规则。
这些是我的 Firestore 规则:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
function isAdmin(uid) {
return (uid in get(/admin/administrators).data.uid)
}
allow read;
allow write: if request.auth.uid != null && isAdmin(request.auth.uid);
}
}
}
在文档 /admin/administrators
中有一个名为 uid
的字段,其中包含允许写入数据库的管理员 UID 数组。
在我以这样的管理员身份登录并尝试将文档添加到另一个集合后。 (具体来说,我的 Angular 应用程序中使用 Angularfire 2 的调用是 this.afStore.collection(collection).add({});
)我收到错误 Error: Missing or insufficient permissions
.
感谢任何帮助(包括"there's obviously a better way to do this")
您应该输入您要引用的集合的绝对路径。将 (uid in get(/admin/administrators).data.uid)
更改为 get(/databases/$(database)/documents/admin/$(request.auth.uid)).data.uid