在Firestore规则中获取当前时间戳

时间:2020-03-13 11:05:13

标签: firebase google-cloud-firestore firebase-security

我正在编写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));
    }
// ...

但是,规则编辑器给我一个错误:

时间戳是一个程序包,不能用作变量名。

1 个答案:

答案 0 :(得分:1)

我认为您应该可以按照以下说明使用request.time(未经测试):

return i > 0 && (i < 1000 || i > request.time.toMillis());

here所述,通过request.time,您得到一个非空的rules.Timestamp

服务收到请求时。

对于包含服务器端时间戳记的Firestore写入操作, 此时间将等于服务器时间戳。