我正在使用AngularFire 1.2.0和Firebase 2.2.4
我有2个应用程序,一个用于将数据上传到Firebase,另一个用于实时显示数据。
处理向Firebase上传数据的应用程序是使用FireSharp库在C#中创建的。 FireSharp在场景后面使用REST API。它会在Firebase上为每个子节点上传数据并生成唯一键。
第二个应用程序用于显示数据。它是使用AngularFire,AngularJS和Firebase制作的。我的问题是,我很困惑如何使用像child_added
这样的事件,以便我可以收听新记录并更新我的显示应用程序。
注意:第一个应用程序每4到5秒连续上传一次数据
即使我的应用程序持续推送数据,代码也不会被解雇。
var dashObject = new Firebase("https://URL/DataNode");
dashObject.on("child_added", function (newChild, previousSiblingChild) {
console.log("new child");
console.log(newChild);
});
我也试过下面的代码。这有效,并且它将数据记录到控制台,但只显示child_added
被触发时新子项的键。我也想要新孩子的数据,而不仅仅是钥匙。
var testQUery = dashObject.orderByChild("victim_IncidentDate").startAt('1446577577474').endAt('14463222357474');
var vicData = $firebaseArray(testQUery);
vicData.$watch(function (event) { console.log(event)});
以下是来自C#应用程序的代码,该应用程序上传数据并使用lists
填充EntityFrameWork 6.0
变量。我没有显示填充lists
变量的代码,我只是在这里显示decalaration以告知人们dataType
。
IFirebaseClient
用于初始化客户端
using FireSharp.Interfaces;
using FireSharp.Config;
using FireSharp;
using FireSharp.Response;
using FireSharp.EventStreaming;
using FireSharp.Extensions;
using Newtonsoft.Json;
List<MyCustomClassDataContract> lists=null;
IFirebaseClient client = null;
for(int i=0;i<lists.length;i++)
{
PushResponse Riskresponse = await client.PushAsync("RiskCatDetail", lists[i]);
string RiskID = Riskresponse.Result.name;
}