Ich versuche, Daten aus meiner Datenbank abzurufen. Mein Code erstellt ein leeres Array und hängt bei jedem Hinzufügen ein untergeordnetes Element an. Es erstellt dann die Liste (ignoriert die MDL-Klassen) und fügt sie dem HTML-Dokument hinzu.Kann Firebase-Snapshot-Daten nicht in Javascript-Array abrufen
<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>
Das Seltsame ist, dass an der console.log() Anweisung, die Daten werden völlig in Ordnung abgerufen, aber nach der String-Manipulation, ist newArray nicht definiert. Hilfe!
Vielen Dank! Das macht sehr viel Sinn. Ein Problem jedoch, es funktioniert immer noch nicht; Ich erhalte jetzt einen Fehler, dass "li.classList.append" keine Funktion ist. Ich habe auch "li.className" ausprobiert. Warum das? – wasimsandhu
Interessant. [Element.classList] (https://developer.mozilla.org/en-US/docs/Web/API/Element/classList) a [relativ gut unterstützt] (http://caniuse.com/#feat=classlist) DOM-Methode. Ich fügte eine kompatiblere Alternative in einem Kommentar hinzu. –