Firestore:在添加/更新文档后无需额外的网络调用即可取回文档
Firestore: get document back after adding it / updating it without additional network calls
是否可以在添加/更新文档后取回文档,而无需使用 Firestore 进行额外的网络调用,类似于 MongoDB?
我觉得先调用添加/更新文档然后再调用一次来获取它很愚蠢。
正如您可能在 Node.js(和 Javascript)SDK 的文档中看到的那样,这是不可能的,使用 DocumentReference nor with the one of a CollectionReference.[=18 的方法也是不可能的=]
更准确地说,set()
and update()
methods of a DocumentReference both return a Promise containing void
, while the CollectionReference's add()
method returns a Promise containing a DocumentReference。
旁注(与下面 darrinm 的回答一致):值得注意的是,对于 Firestore REST API, when you create a document, you get back (i.e. through the API endpoint response) a Document
对象。
将文档添加到 Cloud Firestore 时,服务器会影响存储的数据。发生这种情况的几种方式:
- 如果您的数据包含服务器端时间戳的标记,服务器会将该标记扩展为实际时间戳。
- 根据您的服务器端安全规则,您的数据数据不被允许,服务器将拒绝写入操作。
由于服务器会影响 Document
的内容,客户端不能简单地 return 它已经拥有的数据作为新文档。如果您只想在客户端显示发送到服务器的数据,您当然可以通过简单地重用传递给 setData(...)
/addDocument(data: ...)
.
的对象来实现
这似乎是 Firestore Javascript API 的任意限制。 Firestore REST API returns 在同一调用上更新文档。
https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases.documents/patch
是否可以在添加/更新文档后取回文档,而无需使用 Firestore 进行额外的网络调用,类似于 MongoDB?
我觉得先调用添加/更新文档然后再调用一次来获取它很愚蠢。
正如您可能在 Node.js(和 Javascript)SDK 的文档中看到的那样,这是不可能的,使用 DocumentReference nor with the one of a CollectionReference.[=18 的方法也是不可能的=]
更准确地说,set()
and update()
methods of a DocumentReference both return a Promise containing void
, while the CollectionReference's add()
method returns a Promise containing a DocumentReference。
旁注(与下面 darrinm 的回答一致):值得注意的是,对于 Firestore REST API, when you create a document, you get back (i.e. through the API endpoint response) a Document
对象。
将文档添加到 Cloud Firestore 时,服务器会影响存储的数据。发生这种情况的几种方式:
- 如果您的数据包含服务器端时间戳的标记,服务器会将该标记扩展为实际时间戳。
- 根据您的服务器端安全规则,您的数据数据不被允许,服务器将拒绝写入操作。
由于服务器会影响 Document
的内容,客户端不能简单地 return 它已经拥有的数据作为新文档。如果您只想在客户端显示发送到服务器的数据,您当然可以通过简单地重用传递给 setData(...)
/addDocument(data: ...)
.
这似乎是 Firestore Javascript API 的任意限制。 Firestore REST API returns 在同一调用上更新文档。
https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases.documents/patch