Firestore 安全规则允许用户访问他们的数据

Mat*_*ane 1 firebase firebase-security google-cloud-firestore

我想写一个这样的规则:

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId}/{document=**} {
      allow read, write: if request.auth.uid == userId;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,如果该用户是经过身份验证的用户,我希望允许对该用户的所有数据进行所有读写操作。

不幸的是,这不起作用。我收到一条错误消息,指出我无权访问数据。

Mat*_*ane 6

这段代码解决了这个问题:

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth.uid == userId;
      match /{document=**} {
        allow read, write: if request.auth.uid == userId;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为这是因为您需要授予对/users/{userId}, 以及/users/{userId}/{anyDoc=**}.