【问题标题】:Firebase onSnapshot() listener... Can I somehow get data from before changeFirebase onSnapshot() 监听器...我能以某种方式从更改之前获取数据吗
【发布时间】:2020-03-05 19:28:08
【问题描述】:

我在火力基地有一个收藏。我正在用onSnapshot 方法监听变化。

如果集合中的任何项目以任何方式发生更改,侦听器就会被触发。我正在获取新数据,这些数据使用docChanges 方法插入到我的集合中

db.collection('collection')
    .onSnapshot((snapshot) => {
        snapshot.docChanges().forEach((change) => {
            const payload = {
                id: change.doc.id,
                data: change.doc.data(),
            };

            ...... some action
        });
    });

现在...我需要将新数据(刚刚插入)与旧数据(插入之前)进行比较,我想知道是否有任何方法可以做到这一点?

【问题讨论】:

  • 您能否将问题编辑得更清楚,展示您正在尝试做的具体示例?
  • 好吧,我已经更新了问题
  • 我认为 onSnapshot 发生得太晚了。云函数 onUpdate 提供了一个具有前后属性的更改对象。

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


【解决方案1】:

Firestore SDK 没有提供任何方法来检测文档字段的“之前”和“之后”状态之间的差异。您必须记住这两个快照并自己查找字段中的差异。您可能想搜索一些有关如何解决此问题的想法,例如:Generic deep diff between two objects

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多