Ich muss eine Menge Daten vom Firebase lesen (~ 3000 Kinder und ~ 1,5 MB) und es wird gut sein, wenn ich etwas zeigen kann, das für den Benutzer heruntergeladen wird. Also beschließe ich, child_added
zu verwenden, um jedes von ihnen zu zeigen, aber es funktioniert nicht, wie ich erwarte.Wie funktioniert firebase child_added wirklich?
Nach einigen Experimenten habe ich festgestellt, dass es beim ersten hinzugefügten Kind ~ 5 Sekunden dauert und einige Sekunden bis zum Ende (~ 3 Sekunden). Wenn ich value
Ereignis verwende, dauert es ~ 5 Sekunden, um sie alle auch zu bekommen.
Also meine Frage ist, wie Firebase child_added wirklich funktioniert? Werden alle geladen und ein Ereignis ausgelöst oder habe ich etwas übersehen?
aktualisieren
Dies ist meine Datenbankstruktur.
- contacts
- nw7VoNBw0iLUkb
- city
- company
- email
- name
- gender
- BEu8Yd7ihgxbaF
...
und einige meiner Code
console.log('start', Date.now())
firebase.database().ref('/contacts').on('child_added', snapshot => {
console.log('add', Date.now())
})
und
console.log('start', Date.now())
firebase.database().ref('/contacts').on('value').then(snapshot => {
console.log('end', Date.now())
})
Der Zugriff auf jeden Knoten braucht Zeit. Wenn Sie Ihre Daten von Kind zu Kind herunterladen, würde das viel länger dauern als das Herunterladen aller Daten. – ThunderStruct
Ich stimme zu, aber was ist mit der ersten Ladung? Ich denke, es sollte schneller sein, als alle zu laden, oder? –
Nun, es ist mehr über die Tiefe des Knotens. Wenn das erste abgerufene Kind tiefer verschachtelt ist, dauert es länger. Ich schlage vor, dass Sie die Datenbankstruktur zu Ihrer Frage hinzufügen. Leute können dir besser so helfen :-) – ThunderStruct