Firestore安全规则-验证传入的数据长度是否大于2,但不需要该字段

时间:2018-11-19 17:26:35

标签: firebase google-cloud-firestore firebase-security-rules

我知道如何检查传入数据集的字段是否为字符串,但是如何进行条件检查该字段是否存在,然后检查其是否为字符串:

例如,“姓氏”不是必填字段,但如果提供了该字段,则检查其长度是否大于2。如果仅检查长度规则,则会收到错误消息->有没有办法仅在存在last_name的情况下检查长度?

Firestore规则: request.resource.data.last_name.length()> 0

2 个答案:

答案 0 :(得分:1)

检查值是否为字符串实际上与检查是否存在相同。因此,如果您这样做:

request.resource.data.last_name is string

如果不存在,还将返回false。

但是,如果您不关心类型是什么,而只想检查它是否存在(作为字符串,数字或其他类型):

"last_name" in request.resource.data

request.resource.dataMap,因此请在那些链接中查看其文档。

答案 1 :(得分:0)

用于验证该字段的功能如下:

function isLastNameValid() {
  return request.resource.data.last_name == null || request.resource.data.last_name.size() > 2;
}