调试Cloud Firestore的安全规则

pop*_*rap 7 firebase firebase-security google-cloud-firestore

我正在为我的Google Cloud Firestore数据库设置安全规则.我试图允许删除文档只有在过去的时间戳值超过30天时才使用以下逻辑:

allow delete: if
   resource.data.locked == false
   && (request.time - resource.data.timeStamp).seconds > 2592000;
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到了Error: Missing or insufficient permissions.所以,第一个问题 - 我是在做错了还是我的逻辑有缺陷?

作为后续问题,有没有办法调试规则?也许是一个console.log等价物,我可以看到条件规则的结果,因为它们被应用并检查我没有提交字符串代替时间戳或任何类似的愚蠢?

我假设那request.time是'现在'并且我resource.data.timeStamp是正确的并且一个减去另一个返回a Duration并且thatDuration.seconds返回a number但是我是这个的新手并且这些假设中的任何一个可能是错误的并且它将是伟大的能够在处理这些值时看到这些值.

干杯全都

Har*_*esh 0

我没有被检查,请尝试这样的事情

request.time < resource.data.timeStamp + duration.value(30, "d");
Run Code Online (Sandbox Code Playgroud)

你的第二个问题,我不知道。没有像实时数据库那样的模拟器。请记住它仍处于测试阶段。