2016-07-14 30 views
1

Ich kann keine Schlüssel aus meiner Firebase-Datenbank mit der folgenden Struktur (teilweise) abrufen.Schlüssel der Firebasedaten können nicht abgerufen werden

{ 
"Belmonte" : 
{ 
    "p1" : "p1", 
    "p2" : "p2", 
    "p3" : "p3", 
    "p4" : "p4" 
}, 
"Bricktown" : 
{ 
    "p1" : "p1", 
    "p2" : "p2", 
    "p3" : "p3", 
    "p4" : "p4" 
}, 
"Divino Rostro" : 
{ 
    "p1" : "p1", 
    "p2" : "p2", 
    "p3" : "p3", 
    "p4" : "p4" 
}, 
"Esperanza" : 
{ 
    "p1" : "p1", 
    "p2" : "p2", 
    "p3" : "p3", 
    "p4" : "p4" 
}} 

Und hier ist der Code (aus Beispiel), die ich verwenden, um die Daten abzurufen. Ich habe eine Warnung hinzugefügt, um zu sehen, ob der Code in die Schleife eintritt, aber nicht.

firebase.initializeApp(config); 
    var hello = document.getElementById("hello"); 
    var dbref = firebase.database().ref().child("roomlist"); 
    //dbref.on("value", snap => hello.innerText = snap.val()); 

    dbref.once("value", function(snapshot) { 
     // The callback function will get called twice, once for "fred" and once for "barney" 
     hello.innerText = snapshot.numChildren(); 
     var ctr = 0; 
     snapshot.forEach(function(childSnapshot) { 
      // key will be "fred" the first time and "barney" the second time 

      var key = childSnapshot.key(); 
      var val = childSnapshot.val(); 

      ctr++; 

      alert(ctr); 

      // childData will be the actual contents of the child 
      hello.innerText = ctr; 
     }); 
    }); 

Und

hello.innerText = snapshot.numChildren(); 

Renditen 20. Dies ist die tatsächliche Anzahl der Daten in der Datenbank.

Antwort

3

Ich habe es. Anscheinend müssen Sie das() nicht setzen. Also änderte ich

var key = childSnapshot.key(); 

zu

var key = childSnapshot.key; 

und es funktionierte.

+0

Dies war eine der Änderungen, die wir von unseren 2.x-SDKs zu den 3.x-Versionen vorgenommen haben. Gut zu hören, dass du es gefunden hast. –

Verwandte Themen