2017-07-28 3 views
0

Ich versuche, einen Datensatz aus der Datenbank abzurufen und dann den zurückgegebenen Datensatz zu verwenden, um den Datensatz zu aktualisieren. Wenn ich einen Datensatz in die Datenbank schiebe, wird ein Objekt zurückgegeben, mit dem ich es auch aktualisieren kann.Lesen und Zurückgeben eines Firebase-Datenbankeintrags, der ebenfalls zum Aktualisieren verwendet werden kann

Gibt es eine Möglichkeit, den Datensatz mithilfe der ID abzurufen, die ein Objekt zurückgibt, mit dem der Datensatz aktualisiert werden kann? Etwas wie folgt aus:

var response = firebase.database().ref('/b/' + id).once('value'); 
response.update({name: 'Levi'}); 

ich für einen Benutzer möchte der Lage sein, aus der Datenbank zu lesen, die ID des Eintrags verwendet. Dann möchte ich, dass sie Änderungen am Datensatz in der Datenbank vornehmen können.

+0

Dies ist ein Android Beispiel, ich glaube, es Ihnen auf die Wiedergabe der Aufzeichnungen basieren soll Ihnen helfen, so weit https bekommen haben: //stackoverflow.com/documentation/firebase/10839/how-to-get-push-key-value-from-firebase-database/32507/android-example#t=201707281441153810515 – cutiko

Antwort

2

push() gibt einen neuen Datenpfad Referenz, durch die man den eindeutigen Schlüssel/ID zugreifen können, die erzeugt wird. Sie können dasselbe auch verwenden, um Daten darauf festzulegen.

Um den eindeutigen Schlüssel

// Get the unique key generated by push() 
var pushId = pushRef.key; 
var responseRef = firebase.database().ref('/b/' + pushId); 
responseRef.update({name: 'Levi'}); 
+0

Das wird immer noch nicht funktionieren. In diesem Fall gibt 'once()' ein Versprechen zurück, das keine 'update()' Methode hat. –

+0

Aah ja! Mein Fehler. Korrigierte und aktualisierte Antwort. Danke @FrankvanPuffelen – JoelFernandes

+0

Danke euch beiden! Das habe ich gebraucht. – Levi

1

Als Joel sagt zu bekommen, ruft push() eine reference zur Datenbank Standort zurückkehrt. Und ein Reference hat eine Methode update().

Aufruf once() gibt eine Promise zurück, die keine Methode namens update() hat.

Es ist nicht erforderlich once() zu nennen, können Sie einfach update() auf der ref direkt anrufen:

firebase.database().ref('/b/' + id).update({name: 'Levi'}); 
Verwandte Themen