代码之家  ›  专栏  ›  技术社区  ›  Vicky Thakor

比较云函数中的两个Firestore时间戳

  •  2
  • Vicky Thakor  · 技术社区  · 7 年前

    我正在Firestore中编写更新函数,我想比较两个 Timestamp . 我试过很多种方法,但都不管用。你能给我指出正确的比较方法吗 时间戳 在firestore。

    exports.updateFunction = functions.firestore
        .document('xyz/{xyzId}')
        .onUpdate((change, context) => {
            var updatedXYZ = change.after.data();
            var oldXYZ = change.before.data();
    
            var newTimestamp = updatedXYZ.timing;
            var oldTimestamp = oldXYZ.timing;
    
            // I've tried following things but not working
    
            var result = newTimestamp === oldTimestamp; // not working
            var result = new Date(newTimestamp) - new Date(oldTimestamp); // not working
    
            return true;
        });
    

    我想检查两个时间戳是否相同。

    2 回复  |  直到 7 年前
        1
  •  12
  •   Doug Stevenson    7 年前

    有关Firestore的详细信息,请参阅API文档 Timestamp object. isEqual()

    var result = newTimestamp.isEqual(oldTimestamp);
    
        2
  •  3
  •   Vishu    7 年前

    你需要加上这一行

    admin.firestore().settings( { timestampsInSnapshots: true })
    

    在你的索引.js文件。

    添加此行之后,云函数将把时间戳字段读取为 数据类型。现在可以使用

    var result = newTimestamp.isEqual(oldTimestamp);
    
    推荐文章