当集合中的项目数超过三个时覆盖记录

时间:2018-07-27 13:16:30

标签: javascript firebase google-cloud-firestore

我需要将项目列表写入Firebase集合,但是当已经有三个项目时,我需要它来覆盖现有值。这样,集合中的项目数就不会超过三个。

当前我正在检查计数并在设置新值之前删除

  const count = await connection()
    .collection(`someCollection`)
    .count();

  if(count === 3) {
   // delete last record
   }

  const someCollection = await connection()
    .collection(`someCollection`)
    .doc();

  someCollection.set({
    history
  });

我可以在一个查询中做到这一点吗?

1 个答案:

答案 0 :(得分:0)

由于您最多需要三个项目,因此我考虑将它们全部存储在一个文档中。

那样,您只需加载该文档,检查其中的记录数,然后进行相应的更新。

根据要删除的对象(最旧或最新),使用数组可能最简单(因为可以使用pushpopshift,{{1} },unshiftprepend操作)。