Act*_*ine 6 rest firebase google-cloud-firestore
我想使用对Firestore createDocument方法的REST调用来插入文档。字段之一是应在服务器上设置的时间戳字段。使用Android SDK,就像用Date字段注释@ServerTimestamp并保持为空一样简单-现在如何在REST中做到这一点?
{
"fields": {
"timezoneId": {
"stringValue": "Europe\/London"
},
"city": {
"stringValue": "London"
},
"timestamp": {
"timestampValue": "???"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用null,,0空字符串timestamp-一切都会失败,并出现要求标准RFC3339格式的错误(例如2018-01-31T13:50:30.325631Z)。我可以使用任何占位符值,或以任何方式获取该时间戳记吗?
createDocumentAndroid SDK在创建文档时不会执行请求。相反,它使用请求同时write发出update和请求。transform如果您只想使用createDocument,那么答案是否定的。
你的有效负载看起来像这样:
{
"writes": [
{
"update": {
"name": "projects/{projectId}/databases/{databaseId}/documents/{document_path}",
"fields": {
"timezoneId": {
"stringValue": "Europe\/London"
},
"city": {
"stringValue": "London"
}
}
},
// ensure the document doesn't exist
"currentDocument": {
"exists": false
}
},
{
"transform": {
"document": "projects/{projectId}/databases/{databaseId}/documents/{document_path}",
"fieldTransforms": [
{
"fieldPath": "timestamp",
"setToServerValue": "REQUEST_TIME"
}
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
以这种方式添加文档的唯一缺点是您需要Document自己生成 ID(SDK 生成它们)。我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |