Firestore REST API添加时间戳

时间:2018-12-27 10:22:41

标签: rest api timestamp google-cloud-firestore

我正在尝试通过REST API(https://developers.google.com/apis-explorer/#search/firestore/firestore/v1beta1/firestore.projects.databases.documents.createDocument)将数据添加到Cloud Firestore

我能够使用例如一个整数值,因此连接和语法似乎没问题。

在下一步中,我要将服务器端时间戳添加到文档中。因为我从ESP32发出POST请求,所以时间不可用。 Request-Body看起来像:

{  
   "fields":{  
      "myTime":{  
         "timestampValue":"SERVER_TIME_STAMP"
      }
   }
}

我必须为SERVER_TIME_STAMP写什么?对于其他语言,似乎有一个常量,例如 firebase.database.ServerValue.TIMESTAMP ,服务器将用其当前时间替换该常量。但是API不接受像thees这样的值。

错误消息是

"code": 400,
  "message": "Invalid value at 'document.fields[0].value.timestamp_value' (type.googleapis.com/google.protobuf.Timestamp), Field 'timestampValue', Illegal timestamp format; timestamps must end with 'Z' or have a valid timezone offset.",

1 个答案:

答案 0 :(得分:0)

对于REST API,您应该使用DocumentTransform-> FieldTransform-> setToServerValue->将ServerValue设置为REQUEST_TIME

似乎DocumentTransform只能在writecommit API上使用,而不能在createDocumentpatch上使用。您可以使用commit API替代patch

https://firebase.google.com/docs/firestore/reference/rest/v1beta1/Write#ServerValue