我正在编写firestore规则函数,如果某些值在0到1000之间或大于当前的unix-timestamp,则必须返回true。根据{{3}},我正在尝试执行以下操作:
rules_version = '2';
service cloud.firestore {
match /databases/{db}/documents {
function check(i) {
return i > 0 && (i < 1000 || i > (timestamp.epochMillis));
}
// ...
但是,规则编辑器给我一个错误:
时间戳是一个程序包,不能用作变量名。
答案 0 :(得分:1)
我认为您应该可以按照以下说明使用request.time
(未经测试):
return i > 0 && (i < 1000 || i > request.time.toMillis());
如here所述,通过request.time
,您得到一个非空的rules.Timestamp
:
服务收到请求时。
对于包含服务器端时间戳记的Firestore写入操作, 此时间将等于服务器时间戳。