Ho un'applicazione in cui voglio caricare una certa quantità di dati iniziali (eseguita con Firebase.once('value')
) e poi a un certo punto più avanti mi piacerebbe ricevere gli eventi di nodi figli che sono stati aggiunti a quel riferimento Firebase.Firebase child_added senza caricare prima tutti i dati
Per questo, mi piacerebbe utilizzare Firebase.on('child_added')
, ma secondo la definizione (e visto in pratica) carica TUTTI i dati a quel riferimento Firebase prima.
C'è un modo per aggirare questo comportamento e ascoltare solo gli eventi child_added
. Inoltre, soluzioni alternative come il dumping del set iniziale di dati non sono soluzioni (si immagini un set di dati con oltre un milione di punti dati - non voglio avere in ogni punto dati solo per ascoltarlo quando ne viene aggiunto uno!).
MODIFICA: Firebase.on('child_added')
può essere combinato con limit()
per limitare la quantità di dati proveniente dalla richiesta iniziale. Probabilmente per la mia applicazione, solo un punto dati verrà aggiunto al Firebase in un determinato momento, quindi ho utilizzato Firebase.limit(1).on('child_added')
che limita la quantità di dati iniziali caricati in un singolo punto dati. Ma non mi piace questa soluzione alternativa per due motivi:
- È ancora una soluzione alternativa. Devo ancora ignorare i dati che non dovrei preoccuparmi di ignorare.
- Se per qualche motivo la natura della mia domanda dovesse cambiare e dovessi aggiungere più bambini al riferimento Firebase in una volta, imporre un limite di
limit(1)
alla ricezione di tutti i child aggiunti? Non sono sicuro che sia così o sechild_added
venga chiamato per ogni singolo figlio aggiunto, indipendentemente dal fatto che siano stati aggiunti come batch.
Sembra che fornisce una bandiera true/false
come argomento per la chiamata sarebbe una bella soluzione, ma io aspettare per vedere se c'è una risposta che ho sorvolare ...
È possibile aggiungere la data/ora di creazione a ciascun set di dati e utilizzare la data/ora corrente come query 'startAt' https://www.firebase.com/docs/ordered-data.html https://www.firebase.com/docs /javascript/query/startat.html – Prinzhorn
Ciò funzionerebbe bene con il modo in cui le cose sono strutturate attualmente - la "chiave" dei dati (in una chiave: formato val) è il timestamp dei dati. Grazie per le informazioni! – MandM