2016-07-18 161 views
5

Non riesco a trovare alcuna informazione utilizzando la documentazione di Firebase e google su come recuperare tutti i dati all'avvio dell'app.Firebase recupera tutti i dati all'avvio dell'app

Supponiamo di voler ottenere tutti i seguenti dati all'avvio dell'app senza alcun evento. e archiviare in ArrayList. Diciamo ArrayList<Quote> e la citazione ha tre campi (int id, testo stringa, autore stringa).

[{ 
    "id" : 1, 
    "text": "There are 1,411 tigers left in India.", 
    "author": "NULL" 
}, { 
    "id" : 2, 
    "text": "The Greek for \"left-handed\" also means \"better\".", 
    "author": "NULL" 
}] 

Secondo il documentation c'è un metodo chiamato OnDataChange() ma, app non sta cambiando alcun dato. Come prendere tutti i dati e archiviare in ArrayList<Quote> che posso passare all'adattatore personalizzato.

+0

lettura dal doc, sezione "Valore Events": 'OnDataChange() [...] Questo metodo viene attivato una volta quando l'ascoltatore è collegato e di nuovo ogni volta che i dati, compresi i bambini, changes.' –

risposta

2

Mantenere dati freschi

Database Firebase in tempo reale sincronizza e memorizza una copia locale dei dati per gli ascoltatori attivi. Inoltre, puoi mantenere sincronizzati luoghi specifici.

DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores"); 
scoresRef.keepSynced(true); 

Il cliente scaricherà automaticamente i dati in queste località e mantenerlo sincronizzato anche se il riferimento non ha ascoltatori attivi. È possibile disattivare la sincronizzazione con la seguente riga di codice.

Fare riferimento a questo documento per ulteriori informazioni; https://firebase.google.com/docs/database/android/offline-capabilities

2

Il metodo onDataChange() viene chiamato direttamente quando il listener (ValueEventListener o ChildEventListener) è collegato, quindi non è necessario apportare alcuna modifica ai dati per attivare tale metodo.

Dalla documentazione Firebase - Retrieve Data on Android

Questo metodo viene attivato una volta quando l'ascoltatore è collegato e di nuovo ogni volta che i dati, compresi i bambini, i cambiamenti.