firebase - FireStore规则: Read/Write user own document

标签 firebase google-cloud-firestore firebase-security

在 Firestore 中我有 2 个集合

用户集合和时期集合。我需要为我的期间集合制定一条规则:只能由创建该期间的用户读取和写入。

用户集合看起来像 enter image description here

周期集合看起来像 enter image description here

这是我尝试过的,但没有成功

service cloud.firestore {
  match /databases/{database}/documents {
    function userDoc() {
      return /databases/$(database)/documents/users/$(request.auth.uid);
    }

    match /users/{userId} {
      allow read: if true;
      allow create, update: if request.auth.uid == userId;
    }

    match /periods/{id} {
        allow read : if userDoc() == request.resource.data.user;
        allow write : if userDoc() == request.resource.data.user;
    }
  }
}

最佳答案

替换

if userDoc() == request.resource.data.user

if userDoc() == request.resource.data.user_id

除此之外,您的安全规则对我来说看起来是正确的。

关于firebase - FireStore规则: Read/Write user own document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68235261/

相关文章:

java - 无法从 firestore 中检索已经存在的图像 uri

firebase - 如何在没有错误提示的情况下调试 RN Expo 应用程序中的白屏页面(无内容显示)

javascript - 未捕获的类型错误 : Cannot read property 'uid' of null using website

firebase - Firestore 规则比较对构造路径的引用

ios - 无法使用带有电子邮件/密码的 Firebase 简单登录来执行完成 block

javascript - 从 firebase 检索信息不起作用, key 不是函数

angular - 类型 '{ query: {}; }' 的参数不可分配给类型 'QueryFn' 的参数

firebase - Firebase Firestore 是否有阻止恶意请求的措施?

firebase - firestore 事务抛出更新规则错误,该规则只允许有一个特定字段

android - Android Studio 和 Firebase 中的权限被拒绝错误