Google cloud firestore 如何在firestore规则函数中插值路径?

Google cloud firestore 如何在firestore规则函数中插值路径?,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,我正试图干涸我的规则,所以我写了一个这样的函数 function isInCollection(field, collection) { return exists(/databases/$(database)/documents/$(collection)/request.resource.data[field]) } 我尝试了至少六次将此参数排列为exists(),包括使用path()函数从字符串中构造路径,但我无法使其正确解析路径。我怀疑该问题与字段周围的[]符号有关 它的语法与您

我正试图干涸我的规则,所以我写了一个这样的函数

function isInCollection(field, collection) {
  return exists(/databases/$(database)/documents/$(collection)/request.resource.data[field])
}


我尝试了至少六次将此参数排列为
exists()
,包括使用
path()
函数从字符串中构造路径,但我无法使其正确解析路径。我怀疑该问题与字段周围的
[]
符号有关

它的语法与您已经用于插入
数据库
集合
的语法相同。使用
$()
包含要添加到路径的表达式

exists(/databases/$(database)/documents/$(collection)/$(request.resource.data[field]))

我已经试过了,模拟器仍然在exists调用中给我一个参数错误。我的函数调用有问题吗?它的
isInCollection(“timetype”,“TimeTypes”)
控制台模拟器有时会出现问题。您应该首先检查它在实际部署时是否有效。如果是这样,这是模拟器中的另一个bug。如果仍然存在问题,请编辑问题以显示整个规则集,而不仅仅是这一个函数。解决它。它在IRL中运行良好,只是模拟器的一个问题。感谢道格,也感谢YouTube上的精彩视频!酷。如果您必须为此提交一份bug报告,如果您有时间,这将非常有用。