Firebase 函数 v 1.0 : Alternative of DeltaSnapshot. 在 v 1.0 后更改了()

标签 firebase firebase-realtime-database google-cloud-functions

在版本 1.0 之前,我使用 DeltaSnapshot.changed() 来检查我的数据库函数,传入数据下的数据是否发生更改。 但现在升级到1.0版本后,该方法不再可用。 有没有其他方法可以复制此功能?

一种方法是使用 beforeafter 以及我需要检查更改的节点下的循环子节点。 有没有更好的方法来执行此操作?

最佳答案

正如其他答案中提到的,我们需要创建自己的方法来具有更改检查的功能。因此,这里有一个帮助器,用于事件数据中给定相对路径(不是来自根/的绝对路径)的对象比较。

'use strict';
let _ = require('lodash');

/**
 *
 * @param data Change<DataSnapshot> object received in the event.
 * @param path Relative path in the data object received in the function.
 * @returns {boolean} return true if there is a change in data of before and
 * after snapshot , false if the values are identical
 */
function isChanged(data, path) {
    let before = data.before.child(path);
    let after = data.after.child(path);
    if (before.exists() && !after.exists() ||
        !before.exists() && after.exists()) {
        return true;
    }
    else {
        return !_.isEqual(before.val(), after.val());
    }
}


module.exports = {
    isChanged
};

关于Firebase 函数 v 1.0 : Alternative of DeltaSnapshot. 在 v 1.0 后更改了(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523581/

相关文章:

android - 测试这是否是第一次使用 firebase 调用 facebook 登录

java - 为什么我无法访问另一个类的方法

android - 从android调用云函数admin.auth().createUser()不起作用

javascript - Firebase - 功能不允许我设置区域

javascript - 如何将返回的 Firebase 数据设置为 AngularJS 中的 $scope 变量?

node.js - 错误 : The default Firebase app already exists. 真的吗?

android - 将Crashlytics迁移到Firebase Android时出错

android - Firebase - 强制使用唯一的用户名

ios - 从服务器格式化文本

android - 无法解析 : firebase-common