0

So habe ich Firebase als Datenbank für meine Website verwendet (dies ist ein Web-basiertes Projekt, HTML, CSS und JS verwenden) und ich habe ein Problem beim Abrufen von Daten.Brauchen Sie Hilfe beim Abrufen von Daten aus Firebase

Im Grunde erlaubt diese Seite den Benutzern ein Profil für einen Charakter zu erstellen (sie können den Namen, die Charakterstatistik usw. eingeben) und wenn sie auf submit klicken, werden die von ihnen ausgefüllten Werte in der Datenbank gespeichert .

Die Werte sind perfekt gespeichert, aber wenn ich die Daten abzurufen, scheint der Befehl nichts zu tun.

Also, um die Profile zu bekommen, hat mich versucht, dieses Stück Code zu verwenden, um zu bekommen, was auch immer an dem angegebenen .ref (Pfad) gespeichert ist:

var uid = firebase.auth().currentUser.uid; 
var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey(); 

, die nach der Firebase docs sollte eine Liste von Schlüsseln an dem Pfad zurückgeben, den ich in .ref() angegeben habe. Allerdings, wenn ich versuche, den Zugriff auf alles, was in der var ist, es gibt mir nur die Zeichenfolge, die einen Link auf die Datenbank enthält, die wie folgt aussieht:

https://#mydatabaseurlhere.firebaseio.com/users/uid/chars 

Wo #mydatabaseurlhere ist die URL ich auf der Firebase App erstellt, und die uid ist die authentifizierte Benutzer-ID.

Ich habe die Dokumente gelesen, und es sagt mir, dass der obige Code eine Liste von dem, was auf dem angegebenen Pfad ist, zurückgeben soll, aber bis jetzt gibt es mir nur einen Link. Gibt es etwas, das mir in den Dokumenten fehlt, damit ich auf alle Daten zugreifen kann, die sich gerade in der Datenbank befinden? Weil ich versucht habe, einen Schnappschuss mit .once() zu machen, ohne Erfolg. Ich habe auch die Regeln für/users/festgelegt, damit jeder in die Datenbank schreiben/lesen kann, aber ich kann immer noch nicht auf die Daten zugreifen (oder ich greife gerade darauf zu, ich vermisse nur, wie ich sie abrufen kann).

Wie auch immer, ich frage mich, wie man auf diese Daten zugreifen kann, da ich sehr verwirrt bin, warum ich nicht die Daten abrufen kann, die erfolgreich in die Datenbank geschrieben wurden.

Antwort

1

Sie sind definieren eine Abfrage. Aber die Daten werden noch nicht abgerufen.

Um die Daten abzurufen, müssen Sie einen Listener anhängen. Zum Beispiel:

var uid = firebase.auth().currentUser.uid; 
var getChar = firebase.database().ref('/users/' + uid + '/chars/').orderByKey(); 

getChar.on('value', function(snapshot) { 
    snapshot.forEach(function(child) { 
     console.log(child.key, child.val()); 
    }); 
}); 
+0

Oh, so verwenden Sie den Schnappschuss. Die Dokumentation machte es ein wenig verwirrend, ließ mich denken, dass das Verwenden von Listenern und das Verwenden eines Schnappschusses zwei verschiedene Dinge waren. Vielen Dank für die Hilfe! – shstyoo

Verwandte Themen