我是第一次使用Firestore,但遇到问题,如果邮件发送时间少于5分钟,但我无法使用,我想允许阅读。
service cloud.firestore {
match /databases/{database}/documents {
match /locations/{allDocuments=**} {
allow read: if request.time < Timestamp.fromMillis(resource.data.timestamp) + duration.time(0, 5, 0, 0)
allow write: if true;
}
}
}
每个数据都有一个子调用“ timestamp”,其值是一个类似于“ 1554710156002”的数字
在这种读取条件下,我的应用无法读取任何内容,但可以写入。 有人知道问题出在哪里吗?
答案 0 :(得分:0)
尝试使用duration.time(hours, minutes, seconds, nanos)
(记录在here中)来操纵timestamps:
duration.time(0, 5, 0, 0)
此外,我个人的偏好是将持续时间放在(固定的)资源创建时间之后,这使我的推理变得容易一些。
您的代码将变为
allow read: if request.time < resource.data.timestamp + duration.time(0, 5, 0, 0);
(注意:我没有验证这一点,这是假设您的时间戳实际上是timestamp)