无法在Firebase获取数据上使用foreach方法

时间:2016-12-12 04:00:15

标签: javascript firebase firebase-realtime-database

我在获取Firebase数据时遇到了困难。如何阅读Firebase对象?

-KYl7Q_gcndAPqFC2eCn这样的关键让我无法抓取它。我如何知道该对象名称?

**此提取适用于公共博客。

// Initialize Firebase
var config = {
  apiKey: "foobarbaz",
  authDomain: "whatever.com",
  databaseURL: "foo.com",
  storageBucket: "bar.com",
  messagingSenderId: "1234567890000"
};
firebase.initializeApp(config);

firebase.database().ref("pelanggan").on('value', function(snapshot) {
  var pelanggan = snapshot.val();
  console.log(pelanggan);
  var div_senarai_pelanggan = document.getElementById('div_senarai_pelanggan');

  console.log(key);
  var html = "";
  html = '<ol>';
  pelanggan.foreach(a, function(key, value) {
    console.log(key);
  })
  html += '</ol>';
  div_senarai_pelanggan.innerHTML = html;

});

这是我的fiddle

1 个答案:

答案 0 :(得分:1)

Firebase以对象格式存储您的内容。您应该可以在console.log()来电中看到这一点。 forEach()a method specific to arrays,因此您无法在对象上调用它。您需要使用

迭代对象集合
Object.keys( pelanggan ).forEach( function( key ) {
    console.log( pelanggan[ key ] );
});

如果您想使用.forEach()的变体,我建议您使用Lodash's implementation,然后您可以执行您尝试使用

的操作
_.forEach( pelanggan, function( item ) {
    console.log( item );
});