2015-04-09 3 views
5

versehen mit würde Ich mag die Priorität eines Kindes, um den Server Zeitstempel von Firebase zur Verfügung gestellt mit, ServerValue.TIMESTAMP:Ich möchte eine berechnete Priorität, um den Server-Zeitstempel von Firebase

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

Aber mein Fall ist inverse . Ich möchte ServerValue.TIMESTAMP negativ setzen, um mein Kind basierend auf der Zeit an die Spitze zu bewegen. Ist es möglich, das in Firebase zu tun, ohne den lokalen Zeitstempel System.CurrentTimeInMillis() zu verwenden?

Ich möchte so etwas wie dies tun:

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

Antwort

3

Auf der Clientseite, ServerValue.TIMESTAMP ein Objekt wie folgt strukturiert ist: {.sv: "timestamp"}

So, wie Sie wissen, können Sie nicht einfach tun was du wolltest. Es kann jedoch eine andere Lösung geben. Wenn Sie zum Beispiel die fünf neuesten Einträge wollten, könnten Sie immer noch die Priorität von ServerValue.TIMESTAMP gesetzt:

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

Und dann verwenden Sie die limitToLast() Methode:

Query queryRef = mFirebaseref.limitToLast(5); 

Um die fünf neuesten Einträge zu bekommen .

Auch kann dies helfen: Display posts in descending posted order

3

Sie fragt im Grunde, wie negative Server Zeitstempel zu erhalten und es soll offline arbeiten. Ich habe einen Weg gefunden, es gibt ein verstecktes Feld, das du benutzen kannst. Ein Ausschnitt aus der Dokumentation:

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 zu (Legacy) Dokumentation falls jemand findet es hilfreich: https://www.firebase.com/docs/web/guide/offline-capabilities.html#section-latency – xsorifc28

Verwandte Themen