Firebase Firestore—通过在本地进行更改,然后将数据推送到服务器,从而减少写入和读取的数量

Firebase Firestore—通过在本地进行更改,然后将数据推送到服务器,从而减少写入和读取的数量,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我正在做一系列Firestore收藏和文档的工作。这相当于大量的写入和读取,因为我正在设置双向引用等等多次写入多个文档。 由于Firestore提供离线功能,是否可以通过在本地准备所有数据,然后将其发送到服务器来减少写入次数 我正在使用管理员SDK。这取决于您的意思。一个文档的编写总是要花费一个文档的编写,无论该文档是何时或如何编写的。不要以任何方式减少编写的文档数量,它们只会使所有文档编写在同一时刻生效 如果您准备对单个文档进行大量更改以使其稍后生效,那么您可以随意这样做。只要你弄清楚最终文档

我正在做一系列Firestore收藏和文档的工作。这相当于大量的写入和读取,因为我正在设置双向引用等等多次写入多个文档。

由于Firestore提供离线功能,是否可以通过在本地准备所有数据,然后将其发送到服务器来减少写入次数


我正在使用管理员SDK。

这取决于您的意思。一个文档的编写总是要花费一个文档的编写,无论该文档是何时或如何编写的。不要以任何方式减少编写的文档数量,它们只会使所有文档编写在同一时刻生效


如果您准备对单个文档进行大量更改以使其稍后生效,那么您可以随意这样做。只要你弄清楚最终文档是什么样子,就马上写下文档。

我正在从谷歌appengine标准的Python 2.7 NDB转向Svelte、Firestore和RxFire

通过使用数据对象映射将数百个appengine NDB实体(数据存储/数据对象)批处理到单个文档中,我能够显著减少读写次数

每个数据对象都有一个batchId属性,用于优化(批处理)批写入/文档写入。(batchId=docId)

现在,大多数查询都是在客户机中使用过滤器完成的。这导致使用RxFire观测值进行非常简单的反应式Firestore查询。这也大大减少了复合索引的数量

doc:
   batchId: docId
   map: data Objects
           batchId: docId
           other props ...
        ....
我还使用数据对象的映射将各种配置和定义数据放入单个文档中。此设置易于维护,只需读取一次文档即可使用。文档读取是对文档更改作出反应的可观察对象的一部分