迭代$ firebaseArray和$ firebaseObject

时间:2016-01-11 15:48:36

标签: firebase

我正在尝试迭代从我的Firebase获取的firebaseObjectfirebaseArray,但它们看起来不像普通的javascript objectsarrays

我的数据以下列形式存储

    'mainKey': {
      'key1':'value1',
      'key2':'value2'
   },
   'mainkey2': {
      'key3':'value3'
   }

我已尝试过以下代码

   var firebaseRef = new Firebase("https://<my-app>.firebaseio.com/);
    var fbArray = $firebaseArray(firebaseRef);
    var fbObject = $firebaseObject(firebaseRef);
    for(var i=0;i<fbArray.length;i++){
        console.log(fbArray[i]);
    }
   console.log(fbObject);
   console.log(fbObject.mainkey);
   console.log(fbArray.length);

这在控制台中提供了以下输出

Object { $$conf={...},  $id="test",  $priority=null,  more...} 

undefined

0

虽然返回的对象具有mainkey属性,但我无法访问它。为什么会发生这种情况?我应该如何迭代它们?

2 个答案:

答案 0 :(得分:0)

您可以尝试for..in循环来迭代对象。 以下是一个例子:

for (var key in fbObject) {
  console.log(fbObject[key]); // You could use this method with all objects in JS
}

答案 1 :(得分:0)

这里是您需要了解的信息

  

$ firebaseArray服务采用Firebase参考或Firebase查询和   返回一个JavaScript数组,其中包含所提供的Firebase中的数据   参考。请注意,此后数据将无法立即使用   检索它是一个异步操作。   您可以使用$ loaded()承诺在数据加载时收到通知。

https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray

fbArray.$loaded(function() {
      //here you can iterate over your object
    });