我正在为管理员创建一个用户管理菜单,以编辑用户角色/删除用户。用户也可以更新其个人资料(显示名称,头像...)
所以我将规则配置为这样,但不确定为什么我不能删除?
我正在互联网上搜索样本,但没有任何线索。 Firebase规则模拟器不断响应错误消息,例如“错误运行模拟-发生未知错误”
service cloud.firestore {
match /databases/{database}/documents {
// Function
function getRole(){
return get(/database/$(database)/documents/users/$(request.auth.uid)).data;
}
function isSignedIn(){
return request.auth != null;
}
// Users root document
match /users/{user}{
allow read,create;
allow update: if isSignedIn() && request.resource.data.roles.keys().hasAny(['admin','editor','viewer']) == true;
allow delete: if isSignedIn() && getRole().roles.keys().hasAny(['admin']) == true;
}
}
}
这是我的用户的根收集数据结构:
users: {
"user_uid" : {
"displayName" : "Test",
"email" : "test@gmail.com",
"photoURL" : "...",
"roles" :
{
"viewer" : true,
"admin" : true
}
}
}