ab Ich komme aus einem SQL-Hintergrund und habe kürzlich mit Firebase begonnen, um einen ionischen Einkaufswagen zu erstellen. Dies ist das Datenbankschema:Firebase: So rufen Sie Daten aus zwei Tabellen mit der ID
ein Warenkorb des Benutzers abzurufen, habe ich die folgenden
var user_id="user1"; // Temporary initialised
var refCart = new Firebase("https://testing.firebaseio.com/cart");
var cart=$firebase(fireBaseData.refCart().child(user_id)).$asArray();
Dies gibt das Ergebnis:
item1 1
item2 2
item3 5
versucht So foreach() mit
var refMenu = new Firebase("https://testing.firebaseio.com/menu");
refCart.child(user_id).on("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var item_id = childSnapshot.name();
var qty = childSnapshot.val();
//var data= refMenu.child(item_id).val();
// val is not a function
//var data= refMenu.child(item_id).exportval();
// exportval is not a function
//var data = $firebase (refMenu.child(item_id)). $asArray();
// Give me an array of objects , ie attributes - OK! But what to do next ?
//console.log("DATA",data);
console.log("Item",item_id+" "+qty);
});
});
Wie kann ich item_id verwenden, um Artikeldetails abzurufen.
Ist es die korrekte Art, Daten aus mehreren Tabellen abzurufen?
Update:
Mit on() Funktion verwaltet i Attribute der Artikel zu erhalten.
refMenu.child(item_id).on("value", function(snapshot) {
console.log("Price",snapshot.val().price);
});
Aber gibt es eine bessere Implementierung für das gleiche.
Gibt es bessere Möglichkeiten zum Abrufen (von der Serverseite) bestimmte Attribute für das Element. Wie in SQL
SELECT name,price, ... from menu;
Hey @Devid ich die Daten aus zwei Tabellen, dh Wagen und Menü abgerufen werden wollte. Gibt es dafür eine bessere Alternative? –
Sie müssen nicht alles in 1 "Abfrage" wie in SQL tun. Es ist eine gute Lösung, Daten aus dem Warenkorb abzurufen und dann die benötigten Daten aus dem Menü abzurufen. Dies ist der Firebase-Weg, um Joins zu machen. Aus meiner Sicht ist das einzige, was Sie verbessern können, Ihre Clientseite "Elemente" zwischenzuspeichern, sodass Sie Firebase für dasselbe Element nicht mehrmals abfragen müssen. –
Danke .... Aber ich wollte einen besseren Ansatz. Wie Sie sehen können, würde das Speichern von Menüelementen im Einkaufswagen zu Redundanz führen. Und bei diesem Ansatz brauche ich fast zwei Arrays. Ich würde gerne wissen, ob NoSQL für solche Anwendungen gut ist. –