【发布时间】:2020-07-24 16:04:14
【问题描述】:
在我的 Firestore 文档中,我试图将用户可以更新的字段限制为我允许的字段。我想到了一个函数,它可以检查request.resource.keys() 是否包含我允许的任何键,如果是,我阻止update,如果不是,我允许update。到目前为止,我的函数如下所示:
function field_limit() {
let allow_keys = ["field1", "field2", "field3"];
return request.resource.keys() in allow_keys;
}
在路径匹配内:
allow update: if field_limit();
当我在修改“field1”的模拟器中运行单元测试时,它没有通过。我认为我在这里做错了,因为我将整个keys 列表与allow_keys 列表进行比较。
那我应该怎么做才能实现所需的功能呢?
我想了一个解决方案来遍历request.resource.keys(),看看每个键是否是in allow_keys。如果不是,请阻止update。但是如何遍历列表的每个值呢?
编辑。应该是 request.resource.data.keys() 而不是 request.resource.keys()。否则,它将不起作用。
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security