Firestore规则读取存在特定字段的文档

发布于 2025-02-07 01:28:12 字数 554 浏览 2 评论 0原文

在我的用户集合中,我有一些用户,其中存在一个称为startupdata字段的字段,现在我想将这些文档公开。因此,我试图为此制定规则,但到目前为止没有运气。

这是我的文档。

这些是我到目前为止创建的规则

match /databases/{database}/documents {
match /users/{uid} {
        allow read: if request.auth.uid == uid;
        allow read: if get(/databases/$(database)/documents/users/{document=**}).data.startupData
    }
  }

In my users collectionI have a few users where a field is present which is called startupData field and now I want to make these documents public. So I am trying to make rules for it but so far no luck.

This is my document with the field.

enter image description here

These are the rules that i have created so far

match /databases/{database}/documents {
match /users/{uid} {
        allow read: if request.auth.uid == uid;
        allow read: if get(/databases/$(database)/documents/users/{document=**}).data.startupData
    }
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鲸落 2025-02-14 01:28:12

您可能需要使用hasall

match /databases/{database}/documents {
match /users/{uid} {
        allow read: if request.auth.uid == uid;
        allow read: if resource.data.keys().hasAll(['startupData'])
    }
  }

You probably need to use the hasAll keyword.

match /databases/{database}/documents {
match /users/{uid} {
        allow read: if request.auth.uid == uid;
        allow read: if resource.data.keys().hasAll(['startupData'])
    }
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文