如何使用变量在安全规则中构建Firestore文档的路径

米歇尔

我正在编写一条规则,以允许向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'. 

我尝试了上述几种变体,但没有任何效果。

道格·史蒂文森

如果要在路径构造中插入一些变量值或表达式,则必须使用$()隔离该表达式。在文档中对此进行了讨论,以访问其他文档

在您的情况下,您可能希望像这样构建传递给exist()的路径(为方便阅读,我添加了回车符,您将希望删除它们):

exists(
  /databases
  /$(database)
  /documents
  /Side_Collection
  /$(request.resource.data.field1 + ":" + request.resource.data.field2);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于在文档中收集的Firestore安全规则

Firestore安全规则中的动态路径

如何使用安全规则过滤文档中的字段

Firestore安全规则将通配符变量传递到路径

如何检测安全规则中 Firestore 文档中是否存在字段

即使文档字段在Firestore安全规则中不可用,如何允许访问?

是否可以仅授予用户使用安全规则访问在Firestore中以其uid命名的文档的权限?

在交易中访问新文档时的Firestore安全规则?

Cloud Firestore安全规则-文档中的单个受保护字段

Cloud Firestore安全规则-在列表请求中获取父文档

我应该如何构建我的 Firestore 安全规则?

Firestore安全规则匹配字典中字段的路径

Firestore安全规则-如何为字段名称使用变量?

是否必须在Firestore集合组安全规则的匹配路径中将通配符用于文档段?

Firestore 安全规则:更新文档安全规则

Firestore 安全规则读取 get() 文档计数

Firestore:删除文档和安全规则

Firestore安全规则检查文档密钥更改

Firestore检索多个文档的安全规则

Firestore安全规则,仅允许空文档

文档中对象的安全规则

Firebase 安全规则——使用用户文档中的属性

如何在 Firestore 规则中访问文档 ID

无法使用 Firestore 中的规则访问文档内的集合

如何在Firestore安全规则中处理FieldValue.delete()?

如何在安全规则中测试Cloud Firestore字段的类型?

如何在Flutter中调试Firestore安全规则

如何限制Firestore安全规则中要求的文件数量?

如何使用Firestore的安全规则验证数组值?