作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在版本 1.0 之前,我使用 DeltaSnapshot.changed() 来检查我的数据库函数,传入数据下的数据是否发生更改。但现在升级到1.0版本后,该方法不再可用。有没有其他方法可以复制此功能?
一种方法是使用 before
和 after
以及我需要检查更改的节点下的循环子节点。有没有更好的方法来执行此操作?
最佳答案
正如其他答案中提到的,我们需要创建自己的方法来具有更改检查的功能。因此,这里有一个帮助器,用于事件数据中给定相对路径(不是来自根/的绝对路径)的对象比较。
'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/
在版本 1.0 之前,我使用 DeltaSnapshot.changed() 来检查我的数据库函数,传入数据下的数据是否发生更改。但现在升级到1.0版本后,该方法不再可用。有没有其他方法可以复制此功能
对于 Firebase 实时数据库,每次添加新数据时,它都会为“functions”创建一个 DeltaSnapshot 并为 Android 应用程序创建一个 DataSnapshot。两者的文档显
我是一名优秀的程序员,十分优秀!