firestore安全规则中更新字段的数量

2024-05-16

我正在从客户端进行批量操作以仅更新一个字段,但在进行批量操作和安全规则测试时,观察到多个字段正在被更新。我用这个检查了request.resource.data.size() >1 and request.resource.data.keys().size()>1返回true(文档正在更新)但这并不是有意的,因为我想检查安全规则,仅使用一个检查更新一个字段,例如request.resource.data.keys().hasOnly(['someFieldToUpdate'])但这现在不起作用,以前我记得有writeFields检查这一点,但它现在不存在于文档中,而且this https://stackoverflow.com/a/52192476/4961540答案提到了。那么我如何检查这些字段actually现在正在批量操作中更新吗?


您可以使用新的diff() https://firebase.google.com/docs/reference/rules/rules.Map#diff数据图上的方法。它会告诉您哪些键已更改。这是一个示例:

function isUpdateToOpenField(attr) {
    return request.resource.data.diff(resource.data).changedKeys().hasOnly(['open']);
}

allow update: if isUpdateToOpenField(request.resource.data);

改编自这个答案 https://stackoverflow.com/a/60606807/201828.

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

firestore安全规则中更新字段的数量 的相关文章

随机推荐

  • 3D 网格之间的豪斯多夫距离

    我有多个网格 numpy 数组 Nk Ny Nx 并且想使用 Hausdorff 距离作为这些网格相似性的度量 scipy 中有几个模块 scipy spatial distance cdist scipy spatial distance
  • jsf 2.0 中看不见的注释? [复制]

    这个问题在这里已经有答案了 是否可以在我的 xhtml 文件中嵌入注释 这些注释仅显示在源代码中 而不显示在渲染结果中 我想在文件中包含作者 日期 但最终用户在生成的输出中不应该看到它们 如果我使用标准评论标签浏览器显示它们 将以下内容添加
  • StringComparison.InvariantCultureIgnoreCase 去哪儿了?

    我正在将 C 代码移植到 Windows 应用商店应用程序 令我惊讶的是 以下代码不再起作用 someString Equals someOtherString StringComparison InvariantCultureIgnore
  • 如何使用 hibernate 标准查询将两个属性连接成一个属性

    例如 有 2 个房产的门牌号和密码 我想要一个房产作为地址 例如门牌号是 10 pincode 是 110064 组合地址属性是 10 110064 这是我的代码 final Criteria criteria getDatabaseSes
  • Nginx merge_slashes 重定向

    我在我的 Java 应用程序中使用 nginx 我的问题是 nginx 正在合并斜杠 我无法将我的网站重定向到正确的版本 例如 http goout cz cs koncerty praha 被合并到 http goout cz cs ko
  • 将 FragmentContainerView 与导航组件一起使用?

    更新为导航后2 2 0 beta01 https developer android com jetpack androidx releases navigation 2 2 0 beta01从以前的版本开始 lint 会发出有关替换的警告
  • 如何在 SQL Server 中保持数据行内

    我正在尝试找出如何检测数据是否在VARCHAR n SQL Server 2008 中的列存储在行内或行外 有谁知道如何做到这一点 另外 如果我们需要数据 有没有办法将数据保持在行中 要查看某个值是行内还是行外 您可以使用DBCC PAGE
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 为什么 EF Core 一对多关系集合返回 null?

    这可能看起来像一个重复的问题EF Core 一对多关系列表返回 null https stackoverflow com questions 55210832 ef core one to many relationship list re
  • Pytest 固定装置的范围“类”在每个方法上运行

    我正在尝试使用 Pytest 创建一个测试环境 这个想法是将测试方法分组到类中 对于每个班级 小组 我想附上config将要参数化的夹具 这样我就可以使用 配置 A 运行所有测试 然后使用 配置 B 运行所有测试 依此类推 但同时 我也想要
  • Python 中使用 geoJSON 绘制多边形中的点

    我有一个包含大量多边形 特别是人口普查区 的 geoJSON 数据库 并且有很多长的纬度点 我希望存在一个有效的 Python 代码来识别给定坐标位于哪个人口普查区 但是到目前为止我的谷歌搜索还没有透露任何信息 Thanks 我发现了一个有
  • 将 < 或 > 运算符作为参数传递给函数?

    我的函数里面有一个if 像这样的声明 if passedValue lt staticValue 但我需要能够传递一个参数来指示 if 表达式是像上面那样还是 if passedValue gt staticValue 但我真的无法通过 l
  • Postgresql 的 SQL_NO_CACHE?

    MySQL 关键字是否有等效的 postgresqlSQL NO CACHE 或 SQL Serverdbcc drop clean buffers 即您可以简单地将其包含在 SQL 语句中或作为脚本的一部分吗 UPDATE 这个问题 查看
  • Keycloak 无法使用服务帐户令牌获取具有权限的 RPT

    我正在使用Keycloak 4 8 3 Final 我在 Keycloak 中有以下客户 用户服务 库存服务 库存服务在 Keycloak 中定义了一些资源并启用了授权 用户服务 作为服务帐户 在中分配了必要的客户端角色服务帐户角色 tab
  • 使用正确的头打印文件名

    我想获取当前目录中的文件名 使得文件的第一行等于myWord 我想结合find type f命令与 exec选项与head 1 filename但无济于事 有没有一些聪明的 单行的解决方案来解决这个问题 您可以使用find with awk
  • hashmap包含键的复杂度

    我写了一个方法来查找列表中的重复项 它工作正常 但我担心使用 containsKey 的复杂性 当我们使用 containsKey 时 我们必须为每个键计算一个哈希函数 然后将每个键与我们的搜索项进行比较 对吗 那么复杂度不是 O n 吗
  • Spinner onItemSelected() 执行不当[重复]

    这个问题在这里已经有答案了 可能的重复 Android Spinner OnItemSelected 调用错误 打开微调器时没有用户操作 https stackoverflow com questions 5124835 android s
  • 为什么我的 Mongoose 3.8.7 架构 getter 和 setter 被忽略?

    在使用 Node js Mongoose 和 MongoDB 时 我发现当我执行 findOne 查询时 我的 Mongoose 模式 getter 和 setter 不会触发 我发现一个旧线程表明 2 x 版本中的 getter 和 se
  • 检测Android设备是否具有短信发送功能的程序是什么?

    检测Android设备是否具有短信发送功能的程序是什么 我希望我的应用程序在尝试实际发送短信之前知道设备是否能够发送短信 谢谢 if getPackageManager hasSystemFeature PackageManager FEA
  • firestore安全规则中更新字段的数量

    我正在从客户端进行批量操作以仅更新一个字段 但在进行批量操作和安全规则测试时 观察到多个字段正在被更新 我用这个检查了request resource data size gt 1 and request resource data key