使用Firebase.on()和$ firebaseArrayVariable。$ watch()

时间:2016-09-02 09:23:09

标签: javascript angularjs firebase firebase-realtime-database angularfire

我正在使用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以告知人们dataTypeIFirebaseClient用于初始化客户端

 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;

}

0 个答案:

没有答案