データベースからデータを取得しようとしています。私のコードは、空の配列を作成し、それが追加されるたびにそれに子を追加します。次に、リストを作成し(MDLクラスを無視して)、HTMLドキュメントに追加します。Javascriptアレイにfirebaseのスナップショットデータを取得できません
<script>
// get emergencies to array
var firebaseRef = firebase.database().ref('Incidents');
var emergencies = [];
// var emergencies = ['Test', 'Test 2', 'Test 3'];
firebaseRef.on('child_added', function(snap) {
snap.forEach(function (childSnap) {
console.log(childSnap.val());
emergencies.push(childSnap.val());
});
});
var opentag = '<ul class="mdl-list" id="emergenciesList">',
closetag = '</ul>',
array = [];
for (i = 1; i <= emergencies.length; i++) {
array[i] = '<li class="mdl-list__item">' + emergencies[i] + '</li>';
}
var newArray = array.join(" ");
document.getElementById('foo').innerHTML = opentag + newArray + closetag;
</script>
奇妙なことははconsole.log()文で、データは完全に罰金取得されていること、ですが、文字列操作の後、NEWARRAYは未定義です。助けて!
ありがとうございます!これは多くの意味があります。 1つの問題は、それでも動作しません。私は今、 "li.classList.append"が関数ではないというエラーを受け取っています。私は "li.className"も試みました。何故ですか? – wasimsandhu
興味深い。 [Element.classList](https://developer.mozilla.org/en-US/docs/Web/API/Element/classList)[比較的よくサポートされている](http://caniuse.com/#feat=classlist) DOMメソッド。コメントに互換性のある代替案を追加しました。 –