2016-06-20 7 views
2

Dies ist mein Code-Schnipsel für FeuerbasisFirebase lädt alle Daten vom Knoten warum? sogar mit Zeitstempel

Query recentPostsQuery = reference.child(AppConstants.WORKINDIA_JOB_NODE) 
         .orderByChild(AppConstants.TIMESTAMP) 
         .startAt(lastSyncTime); 
       recentPostsQuery.addListenerForSingleValueEvent(jobBulKDownloadListener); 

Auch Daten von Feuerbasis ändere Server geben, aber alle Daten und raubend sehr hohe Netto-Packs herunterzuladen es mir.

ich gedruckt habe mit

FirebaseDatabase.getInstance().setLogLevel(Logger.Level.DEBUG); 

Dies wurde Druck gesamte Daten unter dem Protokoll

D/WebSocket: ws_3 - ws message: 

enter image description here

Dies ist, wie ich festgestellt habe, Spike bei jedem Aufruf von Feuerbasis, auch wenn Ich bekomme 0 Rekord.

Was mache ich falsch ??

+2

Haben definieren Sie einen Index für 'AppConstants.TIMESTAMP' in Ihren Regeln? Ohne diesen wird der Client alle Daten herunterladen und die Client-Seite filtern. Siehe https://firebase.google.com/docs/database/security/indexing-data –

Antwort

1

Es war poblem wenn Timestamp (eine der Schlüssel) Indizierung. Gehen Sie zu Firebase-Panel und fügen Sie Schlüssel in Regel Abschnitt

Es ist sehr großes Problem, wenn Sie nicht im Index hinzufügen würde, wird es alle Daten herunterladen und auf der Client-Seite zu vergleichen.

Ich synchronisierte alle 3 Minuten und es verbrauchte meine 200 MB in einer einzigen Nacht.

enter image description here

Verwandte Themen