google-cloud-firestore - Firestore 安全规则:检查数组是否包含与用户 ID 不同的字符串
问题描述
我知道如何检查一个数组是否包含给定的字符串(如这里所解释的)。但是我的要求不同:我有一个文档,其中包含在服务器端编写的数组updatedByHistoryArray,其中包含更新此类文档的所有用户的 id 的历史记录,例如[id1, id2, ..., idn]。
只有当后者已由想要删除它的用户专门更新时,我才允许对此文档进行删除操作。因此,例如,如果一个 id24 的用户想要删除一个文档,那么这个文档的 updatedByHistoryArray 必须是 [id24, id24, ..., id24]。
是否可以在 Firestore 的安全规则中实现此要求?
解决方案
听起来可能。尝试使用hasOnly()查看列表字段是否仅包含单个用户 ID。
resource.data.updatedByHistoryArray.hasOnly([request.auth.uid])
推荐阅读
- python - 我可以获取为我的每个账户运行的 AWS EC2 实例的列表吗?
- wordpress - 如何使下载链接仅供一个人使用
- xampp - 如何在 XAMPP 中使用 Xdebug?
- c++ - 从非类型模板参数声明 constexpr 数组的可移植方式
- swift - 如何在 Swift Xcode 中访问 UITextView 的输入
- sql-server - 如何从 SSMS 检查数据同步组?
- excel - 在 Vba 中打开文本文件,出现错误 1004
- python - 从另一个数据框中替换列的值
- mysql - 在字符串中查找完全匹配的正则表达式适用于其他地方,但不适用于 MySql 查询
- networking - tcp/ip 和网络的新手。我有一些问题