Firestore规则 - 在资源

时间:2018-04-12 12:18:07

标签: firebase google-cloud-firestore firebase-security firebase-security-rules

我目前正在将实时数据库迁移到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

1 个答案:

答案 0 :(得分:0)

规则是作用域的,因此您可以在嵌套作用域中从更高级别访问变量。

在您的情况下,allow write规则可以访问$user$notification