我创建了一个用于研究目的的小型asp.net MVC Web应用程序,它将数据存储在Firebase和SQL服务器中。每当Firebase中的数据更新时,我都会将数据更新到SQL服务器,然后从SQL服务器调用数据,之后我将这些数据显示在网页中。
下面是更新Firebase后更新SQL Server中数据的代码。(我只更新'status'字段)
firebase.database().ref("Table/").on('value',
function (snapshot) {
snapshot.forEach(function (child) {
firebase.database().ref("Table/" + child.key + "/").on('value',
function (snap1) {
snap1.forEach(function (child1) {
firebase.database().ref("Table/" + child.key + "/" + child1.key + "/").on('child_changed', function (s) {
var Status, tableId;
s.forEach(function (c) {
if (c.key == "status") {
Status = c.val();
}
if (c.key == "tableId") {
tableId = c.val();
}
});
$.ajax({
type: "post",
url: "/BranchManager/UpdateStatus",
data: { status: Status, id: tableId },
datatype: "json",
traditional: true,
success: function () {
console.log("Table Updated: Status");
}
});
});
});
});
});
});
当应用程序在浏览器中运行时,代码正在运行。
这里我在Index.cshtml中编写了上面的代码。因此,如果从firebase更新任何数据并且应用程序处于offile状态,那么在启动应用程序之后它将加载 上面的代码和更新sql server中的数据。但是不行。
我已经从谷歌提交了this文件,但我无法获得解决方案。
调用'child_changed'事件时我很困惑?有没有办法只从Firebase获取更新的数据?