Firestore 对象数据类型规则

2023-11-22

数据库有一个集合“Collection”,集合内的每个文档都有一个对象“members”,其中包含有权访问该文档的用户的“uid”。

Collection--->document-->members = {"BZntnJO2PVS8OZ9wctwHiyxBytc2": true} 

我尝试了许多不同类型的规则,但这些规则似乎都不起作用

service cloud.firestore {
  match /databases/{database}/documents {
  match /collection/{documentId} {
         allow read: ****
 }
}

1)

allow read: if get(/databases/$(database)/documents/collection/$(documentId)).members[request.auth.uid] != null

2)

allow read: if resource.data.members[request.auth.uid] != null

3)

allow read: resource.members[request.auth.uid] != null

4)

allow read: if request.resource.data.members[request.auth.uid] != null

5)

allow read: request.resource.members[request.auth.uid] != null

这可能是 Firestore 错误吗?


您需要访问dataproperty 来获取任何用户创建的属性,因此规则 1、3 和 5 不起作用。

request.resource通常指的是您发送到数据库的数据,通常是在写入操作的情况下,因此规则#4 不起作用,因为request.resource.data在读取的情况下可能为空。

规则 #2 看起来确实正确,但请记住,这只适用于获取单个文档的情况。查询有点棘手。

具体来说,如果您运行一般的“获取我的集合中的每个文档”类型的查询,Cloud Firestore 没有时间搜索数据库中的每条记录以确保您的用户具有访问权限,因此它会拒绝此查询询问。相反,您需要运行一个查询,Cloud Firestore 可以在其中“证明”您检索到的所有文档都是有效的。例如,在您的情况下,您需要确保您的查询类似于“获取我的集合中的每个文档,其中members.(userID) != null”。然后,Cloud Firestore 规则可以将您的查询与其规则进行比较,并确信您只会获取您有权访问的文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firestore 对象数据类型规则 的相关文章

  • Firestore 数据建模文章和类别

    Context 我正在用 Angular 创建一个类似 wiki 的页面 wiki 页面的文章总数可能不会超过 5000 篇 我想获得最有效的 页面加载 方式 但我认为我对此太陌生 无法监督一种选择相对于另一种选择的后果 当然我也想遵守惯例
  • Firebase 客户端可以确定发送和接收的字节吗?

    在浏览器控制台中检查各种 Firebase JavaScript 对象的结构时 我注意到某些对象具有以下属性 bytes received 429 bytes sent 64 这似乎表明了该节点 引用 快照发送和接收的数据量 是否有一种结构
  • 在 Firebase 中值更改后删除观察者

    我在 ViewController 中有全局观察者 并且需要其中一些不同的观察者来获取特定值 如下所示 值改变一次后是否可以删除观察者 var ref Firebase url https
  • 使用 Firebase C++ sdk 时出现“架构 arm64 的未定义符号”

    我于 2016 年 6 月 10 日下载了 firebase c sdk 我将 sdk 添加到我的 iOS 项目中 将 objc 设置到其他链接器标志中 我遇到了链接器错误 请指教 错误日志如下 Undefined symbols for
  • Flutter Firestore 查询嵌套子集合

    我正在尝试查询 Firebase 中的子集合 但我总是得到一个空列表 这是我的查询 Firestore instance collection messages where idFrom isEqualTo userID snapshots
  • Firebase 在多个域中托管多个目录

    我有以下设置 想知道如何最好地配置 Firebase 托管 我有一个包含 build 目录的存储库 其中包含三个子目录 build a build b build c 我想在 prod 和 dev 中为每个目录提供其自己的域 或域 例如 a
  • 链接器命令失败,退出代码为 1 -- Firebase

    对 iOS 开发相当陌生 有些人在将 firebase 安装到我的 iOS 应用程序中时遇到了一些麻烦 本质上 该应用程序要做的就是从 Firebase 数据库中获取有关全国各地路线的信息 该信息将输出到表格视图 该表格视图将允许用户选择其
  • 无法解析以下类的超类型

    I have android app in kotlin这给了我这个错误 错误 无法解析以下类的超类型 请确保类路径中具有所需的依赖项 com google firebase auth FirebaseAuth 类 未解析的超类型 com
  • 无法将项目部署到 firebase

    我尝试将我的应用程序部署到 firebase 但失败了 firebase 部署 project af2test 您的 CLI 身份验证需要更新才能利用 新功能 请运行 firebase login reauth 错误 无法授权访问项目 af
  • 前台通知 android 未显示(奥利奥)

    当应用程序位于前景 当我从服务器推送通知时 会调用 onMessageReceived 方法 但是通知不显示 这是我的代码 public class MyFirebaseMessagingService extends FirebaseMe
  • 在 GCloud 中使用 Firebase 截屏时出现错误

    我在尝试集成屏幕截图库时遇到了很多麻烦here https firebase google com docs test lab test screenshots 进入我非常简单的 Android 项目 我非常仔细地按照教程中概述的步骤进行操
  • 清空 Firebase DatabaseReference 不会停止观察,这绝对正确吗?

    In the Firebase 太棒了 你做这个 var r1 DatabaseReference nil 然后这个 r1 Database database reference withPath score bucks r1 observ
  • Xcode 12 根本没有调用动态链接 Firebase 函数?

    因此 我有一个正在运行的动态链接 当我单击它时它会打开应用程序 但不会发生动态链接的处理 这是因为下面看到的应用程序功能从未输入过 我不知道为什么 func handleIncomingDynamicLink dynamicLink Dyn
  • 在 flutter 中使用 Cloud Firestore 创建无限列表

    我目前正在将 Cloud Firestore 与 Streambuilder 小部件一起使用 以便使用 Firestore 文档填充 ListView 小部件 new StreamBuilder
  • 我应该使用什么事件在 Firebase Analytics 上发送“按钮按下”事件

    我发现最合适的是选择内容 https firebase google com docs reference android com google firebase analytics FirebaseAnalytics Event html
  • 在执行下一个函数之前等待 for 循环完成

    我需要等待 for 循环完成才能开始使用 experimentArray 在继续使用实验数组之前 我如何等待完成 我尝试过承诺 异步等待等 let experimentArray for i 0 i lt this state gameRo
  • 如何使用 Firebase_Auth 和 Flutter 登录 Twitter

    一个人应该如何编程使用 Twitter 登录特征使用firebase auth https pub dev packages firebase auth和颤动 我看到一些使用的例子flutter twitter login https pu
  • 如何在列表视图中滚动添加更多项目?

    这里的代码当前加载了存储在 Firestore 集合中的所有啤酒 我如何最初只加载 10 个啤酒 然后当用户向下滚动并到达 10 个啤酒列表的末尾时 它应该加载最后一次酿造后还有 10 杯 并且酿造应根据时间戳进行排序 class Brew
  • Firestore 中的多租户

    关于基于子集合值查询数据的实际限制 在 Firestore 中管理多租户的建议方法是什么 我希望能够检索和限制对与用户所属实体 公司相关的数据的访问 数据结构示例 companies companyId users companies co
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收

随机推荐

  • 在 C++ 中的输出字符串中插入“£”符号

    我有以下代码 cout lt lt String that includes a sign 但是 编译器无法识别 符号 而是显示带重音符号的 u 我可以使用以下方法插入一个 cout lt lt String that includes a
  • 如何在数据表中引用数据表父级?

    考虑一个虚拟案例
  • 如何更改 Angular2 TypeScript 项目中的 body 类

    我的登录页面和应用程序中的其他页面有不同的类 因此用户登录后我需要更改 body 元素的类 这是我如何努力实现这一目标的 索引 html
  • 为实体框架创建动态表达式

    我创建了一个通用表达式生成器 它根据条件集合构建谓词 我将谓词传递给存储库中的通用方法 我认为表达式生成器工作正常并创建所需的谓词 尽管实体框架生成的 SQL 脚本不符合我的预期 我读过很多关于动态查询或 LinqKit 和表达式生成器的问
  • 如何检测我的用户正在使用哪个 iOS 设备?

    我正在寻找一种方法来检测我的应用程序正在运行的设备 我对软件版本不感兴趣 我搜索了很多问题 但没有一个 令人惊讶地 满足我的需求 原因如下 解决方案一 NSString deviceType UIDevice currentDevice m
  • 用于网络表单的打字稿

    Web 表单支持 Typescript 吗 我有一个现有的 asp net 4 5 Web 表单项目 其中打字稿似乎不起作用 我无法创建新文件 但即使我将现有文件重命名为 ts 它似乎也不起作用 没有构建 没有智能感知 什么都没有 找到了我
  • Pygame 导致 FPS 低的原因。如何提高性能?

    我正在使用 pygame 处理一些射弹 发现即使只有 200 行代码 游戏的运行速度也低于 50 fps 除了运行循环之外 没有大循环 而且我的电脑相当新 那么 这是因为 pygame 使用 SDL 吗 如果是这样 使用像 OpenGL 这
  • 如何设置savon默认超时值

    我正在使用 savon 进行一些 api 调用 但它需要很长时间才能响应 因为我收到超时错误 所以有什么方法可以更改超时的默认值 我正在使用 savon 0 7 9 ruby 1 8 7 和rails v 2 3 2 Savon 使用 ge
  • 基类和继承中的静态方法中的静态变量

    我有这些 C 类 class Base protected static int method static int x 0 return x class A public Base class B public Base 会不会x静态变量
  • 当数据源为 Linq 时访问 ItemDataBound 事件中的列

    我使用以下代码设置数据源 protected void Page Load object sender EventArgs e var vacancies from v in db Vacancies join c in db Custom
  • 避免传递数据框的最佳方法是什么?

    我有12个data frame一起工作 它们是相似的 我必须对每一个进行相同的处理 所以我编写了一个函数 它需要一个data frame 处理它 然后返回一个data frame 这有效 但我担心我正在绕过一个非常大的结构 我可能正在制作临
  • 如何使用正则表达式分割字符串

    我想将一个字符串拆分为列表或数组 Input green yellow green white orange blue black 分割字符是逗号 但它必须忽略引号内的逗号 输出应该是 green 黄绿色 white orange 蓝黑 T
  • mvc.net验证是否支持ValidationGroup的概念

    来自 asp net 的背景 在向页面添加验证时 我非常欣赏 validationGroup 的概念 我一直在 mvc net 中寻找相应的概念 但运气不佳 这个概念在 mvc net 中可用吗 如果没有 我还有什么选择 不幸的是 它没有附
  • 有人有渲染 HTML 的 diff 算法吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有兴趣看到一个好的 diff 算法 可能是用 Javascript 编写的 用于渲染两个 HTML 页面的并排差异 这个想法是 diff 将显示差
  • 生命周期和对包含引用的对象的引用

    假设我有一个包含引用的结构 以及另一个包含对该结构的引用的结构 如下所示 struct Image lt a gt pixel data a mut Vec
  • 运行 Android 测试会产生“未知的命令行选项‘--tests’”

    我需要使用命令行在快速文件中的应用程序的特定包中使用 Gradle 运行测试 我正在使用这个命令 sh gradlew test tests com package exemple 但它给了我这个错误 从命令行配置任务 app test 时
  • 关闭 ContentProvider 中的数据库

    本周我学习了有关 ContentProvider 的所有内容 并使用 SQLiteOpenHelper 类来管理提供程序内部数据库的创建和升级 具体来说 我一直在阅读 sdk 示例目录中的 NotePad 示例 现在 我可以看到 SQLit
  • 非常快的文本文件处理(C++)

    我编写了一个在 GPU 上处理数据的应用程序 代码运行良好 但我遇到的问题是输入文件的读取部分 3GB 文本 是我的应用程序的瓶颈 从HDD读取速度快 但逐行处理速度慢 我使用 getline 读取一行并将第 1 行复制到向量 将第 2 行
  • cmd 脚本中的日期算术

    我需要编写一个脚本将文件名从 aDate txt 更改为 bDate txt 其中 aDate 是当前系统日期yyyymmdd格式和 bDate 是当前系统日期 1 inyyyymmdd format 我目前有 set yy date 6
  • Firestore 对象数据类型规则

    数据库有一个集合 Collection 集合内的每个文档都有一个对象 members 其中包含有权访问该文档的用户的 uid Collection gt document gt members BZntnJO2PVS8OZ9wctwHiyx