我正在为我的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
,但我是一个新手,这些假设中的任何一个都可能是错误的,如果能够看到这些值被处理,那就太好了。
干杯
2条答案
按热度按时间tkqqtvp11#
我没有检查,请尝试类似的操作
你的第二个问题,我不知道。有没有模拟器一样,在实时数据库。记住它仍然在测试版。
nhhxz33t2#
现在有一个local emulator来帮助调试Firestore规则,它不允许你像“真实的的”调试器一样单步调试规则,但它至少给予了你更大的灵活性来测试和验证哪些规则被破坏了。