首页 > 解决方案 > Firestore 规则 - 获取请求参数的大小

问题描述

在 firestore 中,request.resource.data.size()它的大小相当于文档最终形式的大小。我的问题是,如何获取从客户端发送的参数?

意思是,如果我客户端尝试更新属性name,那么我想检查客户端是否已更新name并且他发送的参数的大小只是一个参数。如果它存在,我会使用hasExact()它,但问题是我不确定是否有一个对象指定了请求的参数。

使用 current request.resource.data.size(),我不确定如何执行以下操作:

  1. 拒绝写入updatedAt属性(在每次更新时更新为服务器时间戳),无需附加属性。
  2. 拒绝更新已经等同于请求值的属性。

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


很难从您的问题中确切地说出您想要做什么。听起来更新的大小并不是您唯一需要查看的内容。没有更具体的例子,我只是猜测你需要什么

但是你应该知道这request.resource.data是一个Map类型的对象。单击链接的 API 文档以了解您可以使用地图执行哪些操作。该地图将包含客户端正在更新的文档的所有字段。如果您想要其中一个字段的值,您可以说出字段名称在request.resource.data.f哪里。f这应该有助于你表达你的逻辑。

如果您想要文档的现有字段的值,请在编写之前使用 map resource.data,其工作方式相同。


推荐阅读