首页 > 解决方案 > Firestore 安全规则:检查数组是否包含与用户 ID 不同的字符串

问题描述

我知道如何检查一个数组是否包含给定的字符串(如这里所解释的)。但是我的要求不同:我有一个文档,其中包含在服务器端编写的数组updatedByHistoryArray,其中包含更新此类文档的所有用户的 id 的历史记录,例如[id1, id2, ..., idn]

只有当后者已由想要删除它的用户专门更新时,我才允许对此文档进行删除操作。因此,例如,如果一个 id24 的用户想要删除一个文档,那么这个文档的 updatedByHistoryArray 必须是 [id24, id24, ..., id24]。

是否可以在 Firestore 的安全规则中实现此要求?

标签: google-cloud-firestorefirebase-security

解决方案


听起来可能。尝试使用hasOnly()查看列表字段是否仅包含单个用户 ID。

resource.data.updatedByHistoryArray.hasOnly([request.auth.uid])

推荐阅读