2017-02-22 24 views
0

я работаю с Firebase базы данных в реальном времени, и я хочу, чтобы извлечь данные массива:Получить ключи и элементы массива Firebase базы данных

данных:

enter image description here

И моя функция:

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); 
     }); 
     }); 
} 

Но результат:

Показать меня объект, но не де-за из пунктов

enter image description here

Что им делать неправильно?

ответ

1

Каждый из item в вашей петле - это дети Усарио. Каждый из этих детей (из вашего изображения 056BN .., CQL .. и E4ll) имеет объект в качестве своего значения (следовательно, у них есть + рядом с ними в базе данных).

Так что, когда вы говорите item.val() вы получаете значение каждого из этих детей, что является их соответствующий объект (данные, которые Вы видите при нажатии + в базе данных.

+0

С вашими комментариями я реструктурирую код и работаю, спасибо большое –

0

Благодаря @MarksCode, Я установил функцию с рефов данных:

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()]); 
       }); 

      }); 
     }); } 

И результат показать мне значения:

enter image description here