firebase 调试Cloud Firestore的安全规则

irtuqstp  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(138)

我正在为我的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是正确的,一个减去另一个返回DurationthatDuration.seconds返回number,但我是一个新手,这些假设中的任何一个都可能是错误的,如果能够看到这些值被处理,那就太好了。
干杯

tkqqtvp1

tkqqtvp11#

我没有检查,请尝试类似的操作

request.time < resource.data.timeStamp + duration.value(30, "d");

你的第二个问题,我不知道。有没有模拟器一样,在实时数据库。记住它仍然在测试版。

nhhxz33t

nhhxz33t2#

现在有一个local emulator来帮助调试Firestore规则,它不允许你像“真实的的”调试器一样单步调试规则,但它至少给予了你更大的灵活性来测试和验证哪些规则被破坏了。

相关问题