我目前正在将实时数据库迁移到Firestore并遇到一些问题。我的规则如下:
service cloud.firestore {
match /databases/{database}/documents {
match /users/ {
allow read
match /{$user} {
allow create: if isAuthenticated(request) && exists(/databases/$(database)/documents/users/$(request.auth.uid)) === false
allow update: if isAuthenticated(request) && request.auth.id === resource.data;
match /notifications/{$notification} {
allow write: if request.auth.id === resource.data
}
}
}
}
}
function isAuthenticated(req) {
return request.auth.uid != null;
}
仅当$user
与身份验证ID(request.auth.id
)相同时,我才希望确保为用户提供更新。通知也是如此。是否可以在通知规则中访问$user
?
答案 0 :(得分:0)
规则是作用域的,因此您可以在嵌套作用域中从更高级别访问变量。
在您的情况下,allow write
规则可以访问$user
和$notification
。