/ / Iteracja poprzez Firebase ref do załadowania swoich dzieci - javascript, firebase, firebase-database, angularfire

Iteruj przez Firebase ref, aby załadować swoje dzieci - javascript, firebase, bazę danych Firebase, angularfire

Chcę indywidualnie załadować każde dziecko obiektu z bazy ogniowej.

Nieobrobiony fragment kodu, aby lepiej wyjaśnić tę ideę, jest podany poniżej:

var userId = firebase.auth().currentUser.uid;
firebase.database().ref("/users/"+userId+"/foo/list").once("value").then(function(list) {
var reffoo = firebase.database().ref().child("/foo/");
for (var i = 0; i < list.length; i++) {
ref = reffoo.child(list[i]);
$scope.foo[ref] = $firebaseObject(ref);
}
});

Zgodnie z moją analizą problem polega na tym, $ firebaseObject wykonuje połączenie asynchroniczne z firebase ale nie wiesz, jak to działa?

Odpowiedzi:

4 dla odpowiedzi № 1

Jedną z opcji jest uzyskanie ref do swojej kolekcji i powtórzyć użycie data snapshot api to znaczy.,

var ref = firebase.database().ref("/users/"+userId+"/foo/list");

ref.once("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var childData = childSnapshot.val();
$scope.foo[childKey] = childData;
});
});

Jeśli chcesz zachować aktualny angularFire odniesienie do obiektu $firebaseArray przychodzi, aby pomóc:

var list = $firebaseArray(ref);

// add an item
list.$add({ foo: "bar" }).then(...);

// remove an item
list.$remove(2).then(...);

// make the list available in the DOM
$scope.list = list;