小编Jua*_*ara的帖子

使用规则禁用Firebase Cloud Firestore中的查询集合

我正在使用Firebase Cloud Firestore,我想修改我的规则以限制用户查询集合.

这不应该被允许:

firestore().collection("users").get()
Run Code Online (Sandbox Code Playgroud)

但是应该允许这样做:

firestore().collection("users").doc("someUserId").get()
Run Code Online (Sandbox Code Playgroud)

目前,我的规则如下:

match /users/{userId} {
    allow read;
}
Run Code Online (Sandbox Code Playgroud)

但是此规则允许查询"用户"集合.

如何允许单个文档获取,但不允许收集查询?

javascript firebase google-cloud-firestore firebase-security-rules

10
推荐指数
1
解决办法
974
查看次数

允许在firestore中对单个字段进行更新

我想让用户有权更新文档.但仅限用户更新此文档的一个特定字段.此用户不应更改所有其他字段.

这可能在火店吗?

我试过这样的事情:

function isUpdateToOpenField(attr) {
    return attr == get(/databases/$(database)/documents/stores/$(store)).data.open;
}

allow update: if isUpdateToOpenField(request.resource.data);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何比较更新是否对应于正确的字段.

firebase-security google-cloud-firestore firebase-security-rules

7
推荐指数
4
解决办法
2118
查看次数

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

在我的company文档中,我有一个名为 的引用字段owner,它指向一个user文档。在规则中,我试图检查经过身份验证的 uid 是否是公司的所有者:

match /companies/{companyId} {
  allow read: if isOwner(resource.data.owner, request.auth.uid);
}



function isOwner(owner, userId) {
   return path('/users/' + userId) == owner;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,但无法弄清楚如何使这项工作发挥作用。

(我知道使用字符串而不是引用有效,但我更愿意使用引用)

firebase google-cloud-firestore

3
推荐指数
1
解决办法
660
查看次数