jma*_*svt 2 javascript firebase google-cloud-firestore
我已阅读下面的所有问题,但在文档中找不到任何内容来描述如何同步集合并仅从集合中接收已更改的文档。我的同步集合中有超过 500 个文档(使用redux-saga-firebasesyncCollection),但通常只有大约 100 个发生更改。在任何给定时间,更改的次数会更少,但目前,即使只有一个更改,我也会收回所有 500 多个文档,这会导致 500 多个读取。不理想,而且会让我付出巨大的代价。
这是我使用 redux-saga-firebase 的代码,但普通的 firebase 代码答案也足够了。如何获得仅发送集合中已更改文档的同步响应?
export function* getPlayersFromDb() {
  yield fork(
    rsf.firestore.syncCollection,
    'players',
    { successActionCreator: response => ({
            type: t.GET_PLAYERS_FROM_DB_SUCCESS,
            payload: [...response],
        }),
        failureActionCreator: () => ({
            type: t.GET_PLAYERS_FROM_DB_FAILURE,
            payload: [],
        }),
        transform: response => messageTransformer(response),
    }
);
}
Firestore 查询没有“仅查询已更改的内容”的概念。您需要自己创建这个概念。通常的方法是在每个文档中记录时间戳以及上次更新的时间,然后在范围过滤器中使用该字段来仅获取自收到最新更新以来更新的文档。您将需要跟踪客户端中的最新更新时间戳。一种可能性是使用迄今为止在任何文档中看到的最大时间戳。
| 归档时间: | 
 | 
| 查看次数: | 1769 次 | 
| 最近记录: |