Firebase安全规则-未定义的资源错误



我有一个集合Users,它有与user.uid相同Id的文档。我想允许登录的用户创建文档,并且只更新、删除和读取他们的文档,这些文档是用前面提到的相同uid指定的。

我试过了,但一直失败。

rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{document} {
allow create, : if request.auth != null;
allow update, delete, read: if request.auth != null && request.auth.uid == request.resource.data.UID;
}
}
}

在这段代码中,我试图将登录用户的uid与一个名为UID的文档字段进行比较

看看文档,它准确地显示了对您问题的回答。

service cloud.firestore {
match /databases/{database}/documents {
// Make sure the uid of the requesting user matches name of the user
// document. The wildcard expression {userId} makes the userId variable
// available in rules.
match /users/{userId} {
allow read, update, delete: if request.auth != null && request.auth.uid == userId;
allow create: if request.auth != null;
}
}
}

关键是使用{userId}通配符表达式将正在读取/更新/删除的文档的ID与用户的uid(即request.auth.uid(相匹配;

相关内容

  • 没有找到相关文章