【发布时间】:2018-03-19 17:38:41
【问题描述】:
在 Cloud Firestore 规则中 - 我有一个名为 task 的文档,我想查看某些数据(assignee 字段)是否为空/不存在。
我试过了:
-
resource.data.assignee == null- 不起作用(错误) -
!resource.data.hasAll(['assignee'])- 不起作用(错误)
从文档中 - 它指出这确实会产生错误:
// Error, key doesn't exist
allow read: if resource.data.nonExistentKey == 'value';
【问题讨论】:
-
这里是完整的规则文件 - github.com/Metaburn/doocrate/blob/master/firestore.rules 据我所知
resource是一个文档,因为我使用的是match /tasks/{anyTask} {来自关于资源的 firebase 文档 - firebase.google.com/docs/firestore/reference/security/… -
我不需要检查文件——我知道文件就在那里。我想检查该文档中的字段。所以对于
/tasks/my-task-tasks是集合。my-task是文档。里面有一个字段assignee- 我想看看它是否为空,我不能 -
有一个
resource.data.keys()函数,尝试使用hasAll(['assignee'])代替。 -
也许你会遇到
!resource.data.keys().hasAll(['assignee'])的运气 -
繁荣@Callam 你明白了。
标签: firebase firebase-security google-cloud-firestore