ich habe eine Datenbank Firebase wie folgt:bekommen alle Kinder eines bestimmten Kind einmal mit Firebase Web
i eine zufällige Anweisung wählen müssen. Aufgrund der Schwierigkeiten bei der Auswahl eines zufälligen Datensatzes basierend auf "Push" -Tasten der Firebase (basierend auf anderen SO-Antworten) habe ich einen numerischen Schlüssel "n: 1" usw. erstellt, so dass ich basierend auf einer Zufallszahl anrufen kann. Hier ist mein Code zum Abrufen einer zufälligen Anweisung:
function getStatement() {
var ref= firebase.database().ref('/totNumState/');
ref.once('value').then(function(snapshot) {
var max = (snapshot.val());
var randomIndex = Math.floor(Math.random() * max) + 1;
var rootRef = firebase.database().ref();
rootRef.orderByChild('data').equalTo('n:'+randomIndex).once("value")
.then(function(snapshot) {
console.log(snapshot.val());
});
}, function(error){console.error(error)});
}
PROBLEM: Ich bekomme eine 'Null' Antwort auf meine Suche. Hauptfrage: Wie kann ich alle Kinder eines bestimmten Kindes in Firebase Web bekommen? SECONDARY FRAGE (verwandt): Warum macht Firebase mich (die Ressource hungrig) "OrderByChild", wenn ich genau den Datensatz, den ich abrufen möchte, weiß?
dank
Haben Sie mehrere Knoten mit Kindern namens 'data'? Denn genau danach sucht der Code. Wenn Sie den gewünschten Knoten kennen, müssen Sie 'orderByChild()' nicht verwenden - referenzieren Sie ihn direkt wie 'firebase.database.ref ('data/n:' + randomIndex)' –
Danke Jen. plus nützlich zu wissen, dass es nicht nötig ist, 'orderByChild()' zu verwenden – user2206361