我正在为Google Cloud Firestore
数据库设置安全规则。我试图允许删除文档只有在过去的时间戳值超过30天时才使用以下逻辑:
allow delete: if
resource.data.locked == false
&& (request.time - resource.data.timeStamp).seconds > 2592000;
当我尝试这个时,我得到Error: Missing or insufficient permissions
。所以,第一个问题 - 我是在做错了还是我的逻辑存在缺陷?
作为后续问题,有没有办法调试规则?也许是一个console.log
等价物,我可以看到条件规则的结果,因为它们被应用并检查我是不是提交了一个字符串来代替时间戳或类似的任何东西?
我假设request.time
是'现在'并且我的resource.data.timeStamp
是正确的,并且一个减去另一个会返回Duration
而thatDuration.seconds
正在返回number
但我是这方面的新手,这些假设中的任何一个都可能是错误的,能够在处理这些值时看到这些值会很棒。
干杯全部
答案 0 :(得分:0)
我没有选中,请尝试这样的事情
request.time < resource.data.timeStamp + duration.value(30, "d");
你的第二个问题,我不知道。实时数据库中没有类似的模拟器。请记住它仍处于测试阶段。