Firestore:在添加/更新文档后取回文档,而无需其他网络调用

时间:2018-10-06 10:45:27

标签: node.js firebase google-cloud-firestore firebase-admin

是否可以在添加文件/更新文件后通过Firestore像MongoDB一样获得文件,而又无需其他网络调用?

我觉得先打个电话来添加/更新文档,然后再打个电话来获取它是愚蠢的。

3 个答案:

答案 0 :(得分:4)

就像您在Node.js(和Javascript)SDK文档中可能已经看到的那样,这是不可能的,无论使用DocumentReference的方法还是CollectionReference的方法都不是。

更准确地说,set()update()DocumentReference方法都返回一个包含void的Promise,而CollectionReference的{{3} }方法会返回一个包含add()的Promise。

答案 1 :(得分:1)

将文档添加到Cloud Firestore时,服务器可能会影响存储的数据。发生这种情况的几种方法:

  • 如果您的数据包含服务器端时间戳的标记,服务器将把该标记扩展为实际时间戳。
  • 根据服务器端的安全规则,您的数据数据不允许,服务器将拒绝写入操作。

由于服务器会影响Document的内容,因此客户端不能简单地将其已有的数据作为新文档返回。如果只想显示在客户端发送给服务器的数据,则可以通过简单地重新使用传递到setData(...) / addDocument(data: ...)中的对象来实现。

答案 2 :(得分:0)

这似乎是Firestore Javascript API的任意限制。 Firestore REST API在同一调用上返回更新的文档。

https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases.documents/patch