我正在编写一条规则,允许在My_Collection中创建新文档,其结构如下:
field1="value-1"
field2="value-2"
field3="other-miscellaneous-values"只有当Side_Collection中没有文档ID使用以下格式的文档时,才允许这样做:
value-1:value-2其中"value-1“来自文档字段"field1","value-2”来自"field2",它们用冒号分隔。
以下是我正在尝试的规则:
allow create: if !exists(/{database}/Side_Collection/{request.resource.data.field1}:{request.resource.data.field2});下面是我收到的那种错误消息:
Error saving rules - Line 24: Unexpected '}'.; Line 24: Missing 'match' keyword before path.; Line 24: Unexpected '.'.; Line 24: mismatched input 'request' expecting '}'; Line 24: Unexpected ':'.; Line 24: Unexpected ')'.; Line 30: Unexpected 'match'. 我尝试了上面的几个变体,但都不起作用。
发布于 2019-11-22 06:07:30
如果要在路径结构中插入一些变量值或表达式,则必须使用$()来隔离该表达式。accessing other documents的文档中对此进行了讨论。
在您的例子中,您可能希望像这样构建要传递给exists()的路径(为了可读性,我添加了回车,您可能希望删除它们):
exists(
/databases
/$(database)
/documents
/Side_Collection
/$(request.resource.data.field1 + ":" + request.resource.data.field2);https://stackoverflow.com/questions/58979250
复制相似问题