2017-06-24 7 views
0

Ich erstelle eine HTML-Seite, auf der ein Benutzer alle seine Beiträge anzeigen und bearbeiten kann. Im Moment protokolliere ich nur das Ergebnis, um zu sehen, ob ich die gewünschten Daten bekomme, aber ich bekomme keine Fehler oder Daten.Abfrage der Firebase-Datenbank, aber keine Daten oder Fehler

Die Seite sollte nur die aktuell angemeldeten Beiträge des Benutzers anzeigen, aber mein Code unten gibt nichts zurück, obwohl für diesen Benutzer Beiträge in der Firebase-Datenbank vorhanden sind.

Haben Sie eine Idee, wie Sie nur den Post für den aktuell angemeldeten Benutzer anzeigen?

Hier ist, wie meine Daten eingerichtet ist:

{ 
    "posts" : { 
    "-KnP3MkFt5559uP1w5fh" : { 
     "content" : "content 1", 
     "title" : "title 1", 
     "uid" : "O96P2INZn6S42dqqwgtz2OfgmYb2" 
    }, 
    "-KnPPwHhfXDv34Lr0HMP" : { 
     "content" : "content 2", 
     "title" : "title 2", 
     "uid" : "B3nHbd7G49Y2iwSA3tJSaHFVuCq2" 
    }, 
    "-KnPR_ZsgOwrpRDGZkHT" : { 
     "content" : "content 3", 
     "title" : "title 3", 
     "uid" : "O96P2INZn6S42dqqwgtz2OfgmYb2" 
    } 
    }, 
    "profiles" : { 
    "B3nHbd7G49Y2iwSA3tJSaHFVuCq2" : { 
     "email" : "-", 
     "firstName" : "-", 
     "lastName" : "-" 
    }, 
    "O96P2INZn6S42dqqwgtz2OfgmYb2" : { 
     "email" : "-", 
     "firstName" : "firstFirst", 
     "lastName" : "firstLast" 
    } 
    }, 
    "user-posts" : { 
    "-KnP3MkFt5559uP1w5fh" : { 
     "content" : "content 1", 
     "title" : "title 1", 
     "uid" : "O96P2INZn6S42dqqwgtz2OfgmYb2" 
    }, 
    "-KnPPwHhfXDv34Lr0HMP" : { 
     "content" : "content 2", 
     "title" : "title 2", 
     "uid" : "B3nHbd7G49Y2iwSA3tJSaHFVuCq2" 
    }, 
    "-KnPR_ZsgOwrpRDGZkHT" : { 
     "content" : "content 3", 
     "title" : "title 3", 
     "uid" : "O96P2INZn6S42dqqwgtz2OfgmYb2" 
    } 
    } 
} 

Hier ist mein javascript:

firebase.auth().onAuthStateChanged(function (firebaseUser) { 
    if (firebaseUser) { 
var userid = firebase.auth().currentUser.uid; 
var myPostsRef = firebase.database().ref('user-posts'); 

    myPostsRef.orderByChild('uid').equalTo('userid').on('child_added', function(snapshot) { 
snapshot.forEach(function(snapshot) { 
     var myPostData = snapshot.val(); 

     console.log(myPostData); 

    }); 
}); 
+0

Nun, Sie sind keine Fehler zu kontrollieren, so dass Sie würde sie nicht sehen. Die Funktionen 'onAuthStateChanged' und' on ('child_added'' werden beide einen Fehlerrückruf zurückgeben, wenn Sie etwas wie '.catch (function (error) {console.log (error)}' hinzufügen, sollten Sie Fehler sehen. – edzillion

Antwort

1

Dieses:

myPostsRef.orderByChild('uid').equalTo('userid')

..looks wie es sollte dies :

myPostsRef.orderByChild('uid').equalTo(userid)

geschieht die ganze Zeit :)

+1

Danke @ pejalo & edzillion. Es funktioniert jetzt. Ich musste das auch ändern: myPostsRef.orderByChild ('uid'). equalTo (Benutzer-ID) .once ('Wert', Funktion (Momentaufnahme) { snapshot.forEach (function (childSnapshot) { var myPostData = childSnapshot.val(); // von Momentaufnahme geändert console.log (myPostData); }); – greynolds

Verwandte Themen