Ich lerne Angularfire und ich habe viel davonFragen, aber eine, die mich wirklich nervt, ist das Folgende. Ich habe auf vielen verschiedenen Seiten (einschließlich Firebase.com) gelesen, wie man Daten von einer Firebase abruft, und sie machen alle einen Unterschied zwischen der Rückgabe Ihrer Daten als Array ($ FirebaseArray) oder Objekt ($ FirebaseObject). Objekte eignen sich hervorragend für Three-Way-Binding, aber was ist, wenn ich meiner Datenbank neue Inhalte hinzufügen möchte?
EIN $firebaseArray
hat ein $add
Methode, aber a $firebaseObject
doesn t. Also, was ist das Geschäft hier und wann zu verwenden $firebaseArray
gegen $firebaseObject
. Oder gibt es eine Methode zum Hinzufügen neuer Daten mit a $firebaseObject
und sehe ich es einfach nicht?
Kann mir jemand ein bisschen Klarheit geben? Ich benutze angularfire 1.0.0. Danke im Voraus!
Antworten:
3 für die Antwort № 1Wenn Sie vorhandene Objekte ändern möchten, verwenden Sie $firebaseObject
, benutzen $firebaseArray
um dem Array von Objekten neue Objekte hinzuzufügen,
Beispiel: Um alle Bestellungen von einem Kunden zu erhalten und dann eine bestimmte Bestellung zu erhalten
AM.value("DB_URL","https://myfirebase.firebaseio.com/");
AM.factory("DB", ["DB_URL",
function(DB_URL) {
var db = new Firebase(DB_URL);
return db;
}
]);
AM.factory("Orders", ["$firebaseArray", "DB","Auth","$firebaseObject","$log",
function($firebaseArray,DB,Auth,$firebaseObject,$log) {
$log.debug("Fetching Orders");
var authData = Auth.$getAuth();
var ordersRef = DB.child("users/" + authData.uid+"/orders/");
$log.debug("ordersRef = " + ordersRef);
var Orders = $firebaseArray(ordersRef);
return {
getOrders: function() {
return Orders;
},
getOrder: function(orderId) {
$log.debug("Order for id: " + orderId);
var orderRef = ordersRef.child(orderId);
$log.debug("orderRef = " + orderRef);
var Order = $firebaseObject(orderRef);
return Order;
}
};
}
]);