Uczę się Angularfire i mam dużopytania, ale jeden, który naprawdę mnie dręczy, jest następujący. Czytałem w wielu różnych serwisach (w tym Firebase.com) o tym, jak pobierać dane z bazy Firebase i sprawiają, że wszystkie robią różnicę między zwrotem danych z powrotem jako tablicy ($ firebaseArray) lub obiektu ($ firebaseObject). Obiekty są świetne do wiązania w trzech kierunkach, ale co jeśli chcę dodać nowe rzeczy do mojej bazy danych?
ZA $firebaseArray
ma $add
metoda, ale a $firebaseObject
nie znaczy więc, o co tu chodzi i kiedy go używać $firebaseArray
vs. $firebaseObject
. Czy istnieje metoda dodawania nowych danych za pomocą $firebaseObject
i czy ja po prostu tego nie widzę?
Czy ktoś może dać mi odrobinę przejrzystości. Używam angularfire 1.0.0. Z góry dziękuję!
Odpowiedzi:
3 dla odpowiedzi № 1Jeśli chcesz zmodyfikować istniejące obiekty, użyj $firebaseObject
, posługiwać się $firebaseArray
dodawać nowe obiekty do tablicy obiektów,
Przykład: Aby uzyskać wszystkie zamówienia od klienta, a następnie uzyskać konkretne zamówienie
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;
}
};
}
]);