Ich versuche, eine Eigenschaft in einem Datensatz in Firebase-Datenbank mit AngularJS zu aktualisieren. Ich kann eine Abfrage einrichten, um meine Platte zu finden:Firebase Update() keine Funktion mit einer Abfrage
firebase.database().ref('en/').orderByChild('word').equalTo('the').once('value')
.then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
console.log(childSnapshot.val())
});
})
ich mein Eigentum aktualisieren kann, wenn ich in der Aufzeichnung des hard Schlüssel:
firebase.database().ref('en/-KloeQHDC-mugPjJMAG4').update({ wordFrequency: 111 })
Aber wenn ich eine Abfrage einrichten, den Datensatz finden und dann aktualisieren, erhalte ich eine Fehlermeldung update is not a function
:
firebase.database().ref('en/').orderByChild('word').equalTo('the').update({ wordFrequency: 9001 })
ein weiterer answer schlägt update()
aus dem Inneren einer forEach
Schleife Aufruf:
firebase.database().ref('en/').orderByChild('word').equalTo('the').once('value')
.then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
console.log(childSnapshot.val()); // this works
childSnapshot.ref().update({ wordFrequency: 9001 });
});
});
dass eine Fehlermeldung zurückgibt TypeError: childSnapshot.ref is not a function
. Ich sehe nicht, wie childSnapshot
ist ein Firebase ref.
Ein weiterer answer sagt
Wenn Sie update() auf einen Ort nennen, Firebase Datenschleifen über , die Sie in geben (in Ihrem Fall asJson) und für jede Taste führt eine ref.child (Schlüssel) .set (Wert).
Wenn update()
Schleifen über die Daten, warum sollte ich update()
aus dem Inneren einer forEach
Schleife nennen? Die documentation zeigt nicht aufrufen update()
von innerhalb einer forEach
Schleife.
Vielen Dank! Die Dokumentation (https://firebase.google.com/docs/reference/js/firebase.database.Reference#update) könnte klarer sein. Es könnte erklären, dass update() einfach zu verwenden ist, wenn Sie den Schlüssel haben, und schwierig ohne den Schlüssel zu verwenden. Das Beispiel, in dem "ada" als Schlüssel verwendet wird, ist verwirrend, da "ada" nicht wie ein Firebase-Schlüssel aussieht (z. B. -kh4j5hf7g67h). Ich habe eine Antwort auf meine Frage gepostet, die update() einfach macht, wenn Sie den Schlüssel im Auge behalten. Es könnte auch ein Beispiel mit der onComplete-Funktion haben. –