我为每个用户创建了一个用户ID集合,并且我希望设置数据库规则以仅在用户ID与收集项目名称匹配时才读取该收集项目。 我尝试过类似的事情:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if request.auth != null;
}
match /{userId} {
allow read: if belongsTo(userId);
}
function belongsTo(userId) {
return request.auth.uid == userId
}
}
}
答案 0 :(得分:1)
Firestore读取文档。没有阅读收藏的概念。因此,您的规则必须提供对文档的访问权限。
要授予对以用户的UID命名的集合中所有文档的访问权限,请执行以下操作:
match /{userId}/{document} {
allow read: if belongsTo(userId);
}