1

Я хранящей свои данные в firebase с update() как такОтображение firebase данных в ионном списке

var newKey = firebase.database().ref().push().key; 

    var updates = {}; 
    updates['metadata/' + newKey] = { 
     name: $scope.formData.name, 
     price: $scope.formData.price 
    }; 

    updates['realdata/' + newKey] = { 
     name: $scope.formData.name, 
     price: $scope.formData.price, 
     date: $scope.formData.date 
    }; 

    return firebase.database().ref().update(updates) 
    .then(function(ref){ 
     console.log("added in fb"); 
    }, function(error){ 
     console.log("error " + error) 
    }); 

Сейчас на на другой странице я потянув данные из firebase, но я не могу показаться, чтобы отобразить его к моему списку на мой взгляд.

Я пробовал несколько способов вытащить данные, и в обоих случаях я могу видеть данные при входе в консоль.

var dbRef = firebase.database().ref('/metadata'); 
    //Method 1 
    $scope.list = $firebaseArray(dbRef); 
    /* 
    Result here in the console is an array with objects 
    but when setting this in my list, I get the same amount of items pulled out but they are empty 
    */ 

    //Method 2 - I prefer this way as per docs it's a best practice 
    var loadmetadata = function(data){ 
     console.log(data.val().name); // I get the actual name 
     $scope.list = data.val().name 
    }; 

    dbRef.on('child_added', loadmetadata); 
    dbRef.on('child_changed', loadmetadata); 

мой взгляд это простая

<ion-item ng-repeat="listitem in list"> 
{{ listItem.name }} 
</ion-item> 

Что мне не хватает? Я предпочитаю второй метод, если кто-то может мне помочь в этом?

Дело в том, что я нашел кого-то с той же проблемой здесь, на SO, и он смог решить его с помощью методов, которые у меня выше. Вот ссылка на вопрос/ответ Firebase 3 get list which contain generated keys to ionic list

Единственное различие, которое я вижу, это то, что он сортирует результаты, но мне это не нужно в настоящее время.

ответ

0

Я только что понял! Вместо использования $ firebaseArray мне нужно использовать метод $ firebseObject.

$scope.metadataObj = $firebaseObject(dbRef); 

и на мой взгляд, я могу сделать следующее:

<ion-item ng-repeat="(key, value) in metadataObj">{{value.name}}</ion-item> 

Этот метод содержит все ребенок methodes тоже. Поэтому нет необходимости слушать их отдельно.