2015-04-09 8 views
5

Chciałbym ustawić priorytet dziecka za pomocą znacznika czasu serwer dostarczony przez Firebase, ServerValue.TIMESTAMP:Chcę ustawić obliczony priorytet przy użyciu znacznika czasu serwera dostarczonego przez Firebase

mFirebaseref.child(userid).setPriority(ServerValue.TIMESTAMP); 

Ale mój przypadek jest odwrotny . Chcę ustawić ujemny ServerValue.TIMESTAMP, aby przenieść moje dziecko na górę w oparciu o czas. Czy można to zrobić w Firebase bez używania lokalnego znacznika czasu System.CurrentTimeInMillis()?

chciałbym zrobić coś takiego:

mFirebaseref.child(userid).setPriority(-ServerValue.TIMESTAMP); 

Odpowiedz

3

Po stronie klienta, ServerValue.TIMESTAMP to obiekt skonstruowany tak: {.sv: "timestamp"}

Tak, jak wiadomo, nie można łatwo zrobić co chciałeś. Jednak może istnieć inne rozwiązanie. Jeśli, na przykład, chciał pięć najnowsze wpisy, można jeszcze ustawić priorytet ServerValue.TIMESTAMP:

mFirebaseref.child(userid).setPriority(ServerValue.TIMESTAMP); 

a następnie użyć metody limitToLast():

Query queryRef = mFirebaseref.limitToLast(5); 

Aby uzyskać pięć najnowsze wpisy .

Ponadto, może to pomóc: Display posts in descending posted order

3

Jesteś w zasadzie pytaniem, jak dostać negatywną znacznik czasu serwera i powinno działać w trybie offline. Znalazłem sposób, jest tam ukryte pole, którego możesz użyć. Fragment z dokumentacji:

Firebase offsetRef = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/.info/serverTimeOffset"); 
offsetRef.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot snapshot) { 
    double offset = snapshot.getValue(Double.class); 
    double estimatedServerTimeMs = System.currentTimeMillis() + offset; 
    } 

    @Override 
    public void onCancelled(FirebaseError error) { 
    System.err.println("Listener was cancelled"); 
    } 
}); 
+0

Link do (legacy) dokumentacji na wypadek gdyby ktoś uzna to za pomocne: https://www.firebase.com/docs/web/guide/offline-capabilities.html#section-latency – xsorifc28