2017-06-07 8 views
0

私は投稿のリストを持っています。各投稿にfirebase servervalue timestampが含まれています(createdAt)。firebase orderByChildがタイムスタンプで動作しないのはなぜですか?

私の投稿タイトルは1,2,3,4,5としましょう。私はこの質問をします。

const userPostsRef = database.ref(`userPosts/${uid}`) 
        .orderByChild('createdAt').limitToLast(10);` 

それでも1,2,3,4,5が返されます。私が欲しいのは5,4,3,2,1

私はナビゲートタイムスタンプにしようとしました。どうして?それは逆のクエリのために負のタイムスタンプを持つ別の子orderTimestampを使用しなければならないということですか?

更新JSON

私は(limitToLastを意味します)。

userPosts 
sms|5797235fe618d33da2eb0ad3 

    -Km2l4HHE3pONRnA2Akp 
    createdAt: 14968593
    o: -14968593
    title: "2" 

-Km2l5QQRi1F66LJkM45 
    createdAt: 1496859305916 
    o: -1496859305916 
    title: "3" 

-Km2uTa8tAe0G5cJ2U-B 
    createdAt: 1496861764218 
    o: -1496861764218 
    title: "4" 

-Km2uUrfwvY90Im06kg4 
    createdAt: 1496861769435 
    o: -1496861769435 
    title: "5" 

orderByChild( 'createdAt')

enter image description here

orderByChild( 'O')

enter image description here

+0

質問しているJSONのスニペットをテキストとして共有してください(テキストとして、スクリーンショットなし)。これは、[Firebaseデータベースコンソール](https://console.firebase.google.com/project/_/database/data)の[Export JSON]リンクをクリックすると表示されます。 –

+0

@FrankvanPuffelenが更新されました。 – vzhen

+0

私はそれを得たと思う。 @Mathewが答えているように、firebaseは常に昇順に戻り、-10が-5より小さいので、最初に最新の投稿を返します。 – vzhen

答えて

2

それは、常にそれが、昇順に返しますそれを注文するためにあなたにクライアントまで彼はあなたが検索後にしたい方法。 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15があり、15,14,13,12,11が必要だった場合は、代わりに.limitToLast(5) 11,12,13,14,15の順番に並べ替え、クライアント上で順番に並べ替えます。

+0

私は質問を更新しました。はい、私はlimitToLast()を意味します – vzhen

+0

さて、私はそれを得た。ありがとう。 – vzhen

関連する問題