只要有新用户注册我的应用程序,我的Firestore数据库就会创建一个新的集合。集合的名称是新用户的用户名。我想使此集合中的文档具有受限的写访问权限。
service cloud.firestore {
match /databases/{database}/documents {
match /User1/{info} {
allow read: if signedIn();
allow write: if isOwner(User1);
}
function signedIn() {
return request.auth != null;
}
function isOwner(userId) {
return request.auth.uid == userId;
}
}
}
如果当前用户为User1
,则此方法有效,但不适用于任何注册的新用户。如何将此Firestore安全规则添加到每个新用户?
答案 0 :(得分:3)
我注意到第一条规则与/User1/{info}
匹配,这意味着它将与集合User1
中的任何路径匹配。相反,如果使用方括号,则此值将成为通配符,这意味着匹配将适用于任何值。请查看guide中的示例以获取更多信息。
service cloud.firestore {
match /databases/{database}/documents {
match /{username}/{info} {
allow read: if signedIn();
allow write: if isOwner(username);
}
function signedIn() {
return request.auth != null;
}
function isOwner(userId) {
return request.auth.uid == userId;
}
}
}