授予仅对文档创建者的读取权限

时间:2018-02-09 15:26:13

标签: javascript firebase google-cloud-firestore

如何创建有效的安全规则以允许列出subscriptions集合中的所有文档及其内容,这些文档当前登录的用户恰好拥有?还可以使用同一个人编辑这些文档,只需要很少的额外验证规则吗?

Firebase文档不时有非常糟糕的示例。这是我到目前为止所尝试过的,但它说我没有足够的权限来读或写:

match /subscriptions {

  allow list;

  match /{id} {
    allow read: if resource.data.user == /databases/$(database)/documents/users/$(request.auth.sub);

    allow update: if request.resource.data.user == request.auth.sub
                  && request.resource.data.user == resource.data.user
                  && request.resource.data.keys().hasAll(['code', 'schedules', 'common'])
                  && request.resource.data.code is string
                  && request.resource.data.schedules is list
                  && request.resource.data.common is bool;
  }

}

一个订阅只能定义一个用户,因此就此而言,我可以在用户文档中使用子收集。但是因为我必须在一个中处理所有数百个 - 可能是数千个 - 订阅,所以逐个获取每个用户和每个订阅都是非常低效的。所以现在我在数据库的根目录中收集了subscriptions

0 个答案:

没有答案