Ich fange mit Abfragen in Firebase-Datenbank an und werde einige weitere Einblicke lieben.Einzelartikel Firebase
Diese Abfrage funktioniert beim Abrufen eines einzelnen Elements aus der Firebase-Datenbank. Mein Verständnis inline.
var ref = DatabaseRef; // root of my fbase db
var codeRef = ref.child('codes'); // at root/codes/ now
codeRef
.child($stateParams.codeId) // a param comes in
// grab value one-time
// https://www.firebase.com/docs/web/guide/retrieving-data.html#section-reading-once
.once('value', function(snap) {
console.log(snap.val());
})
Das obige funktioniert. Aber unten nicht, und warum? Mein Verständnis inline.
// same ref from above
codeRef
// traverse the /codes/ url, and find all items that match
// the specified param
.equalTo($stateParams.codeId)
.once('value', function(snap) {
console.log(snap.val()); // returns `null`
})
Stattdessen erwartete ich alle Objekte zu dieser ID-Abgleich bis zu zeigen. In diesem Fall ist die ID eindeutig, daher habe ich erwartet, ein einzelnes Objekt zurück zu bekommen. Es wird jedoch eine null
zurückgegeben.
Vom docs:
Die EqualTo() Methode ermöglicht es uns, auf exakte Übereinstimmungen zu filtern. Wie bei den anderen Bereichsabfragen wird sie für jeden übereinstimmenden untergeordneten Knoten ausgelöst.
Also, vielleicht sehe ich diese ganze Firebase Queries falsch. Wird gerne erleuchtet sein.