如何获取firebaseArray对象的键

时间:2016-06-27 03:10:25

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

我正在尝试获取返回的firebaseArray记录的密钥,但我没有运气。

我有一个运行以下内容的服务来返回商店

getStore: function(uid, id){
    var ref = firebase.database().ref('u/'+uid+'/stores/'+id+'/i/');
     // to take an action after the data loads, use the $loaded() promise
     return $firebaseArray(ref);
}

我通过调用服务

使用以下内容来获取eeach记录
for(var i = 0; i < $scope.storesList.length; i++){
    var storeInfo = Stores.getStore($rootScope.user['uid'], $scope.storesList[i]['$id']);
    storeInfo.$loaded().then(function(data){
            $scope.stores.push(data);
            console.log($scope.stores);
    });
}

在我的html中,我可以访问数组中的各种属性

<li ng-repeat="store in stores">
      <span class="store-address">{{store.$getRecord('name').$value}}</span>
      <span class="store-address">{{store.$getRecord('address1').$value}}</span>
</li>

但我似乎无法从ng-repeat

中获取每个商店记录的ID

3 个答案:

答案 0 :(得分:1)

要获取ID,只需在项目上调用$ id即可。

<li ng-repeat="store in stores">
      <span class="store-address">{{store.$getRecord('name').$value}}</span>
      <span class="store-address">{{store.$getRecord('address1').$value}}</span>
      <span class="store-address">{{store.$id}}</span>
</li>

请参阅:https://github.com/firebase/angularfire/blob/master/docs/reference.md#firebasearray

答案 1 :(得分:0)

尝试这个简单的代码,而不是让自己变得复杂!

var ref = new Firebase(url);
ref.once("value", function(list) {
    var subData    = list.val();
    var subDataKey = list.key();
    console.log(subDataKey);

这必须帮助你!

答案 2 :(得分:0)

我通过从firebaseArray切换到包含$ id参数

的firebaseObject来解决这个问题