2017-02-22 2 views
0

Ich bin mit Firebase Echtzeit-Datenbank arbeiten, und ich möchte ein Array Daten abzurufen:Abrufen von Keys und Elemente der Array-Datenbank Firebase

Daten:

enter image description here

Und meine Funktion:

function traerUsuarios(firebase) 
{ 
    var ref = firebase.database().ref().child('/Usuario'); 
    console.log(ref) 
    ref.once('value', function (snap) { 
     snap.forEach(function (item) { 
      var itemVal = item.val(); 
      console.log(itemVal); 
     }); 
     }); 
} 

Aber das Ergebnis:

Zeig mir Objekt aber nicht de für den Artikel

enter image description here

, was im falsch?

Antwort

1

Jede item in Ihrer for-Schleife sind die Kinder von Usario. Jedes dieser Kinder (von Ihrem Bild 056BN .., CQL .., und E4ll) haben ein Objekt als ihren Wert (daher haben sie eine + neben ihnen in der Datenbank). So

, wenn Sie sagen item.val() Sie bekommen den Wert jeder eines dieser Kinder, die ihre entsprechende Objekt (Die Daten, die Sie sehen, wenn Sie die + in der Datenbank klicken.

+0

Mit Ihren Kommentaren, ich restrukturiere den Code und funktioniert, vielen Dank –

0

Dank @MarksCode, ich reparierte die Funktion mit Daten refs:

function traerUsuarios(firebase) { var key; 
var starCountRef; 
var usuarios=new Array(); 
// var ref = firebase.database().ref().child('/Usuario'); 
var query = firebase.database().ref("/Usuario").orderByKey(); 

query.once("value") 
     .then(function (snapshot) { 
      snapshot.forEach(function (childSnapshot) { 
       // key will be "ada" the first time and "alan" the second time 
       key = childSnapshot.key; 
       starCountRef = firebase.database().ref("/Usuario/"+key); 
       starCountRef.on('value', function (snapshot) { 
        console.log(snapshot.val()); 
        usuarios.push([key,snapshot.val()]); 
       }); 

      }); 
     }); } 

Und das Ergebnis zeigt mir die Werte:

enter image description here