2017-06-08 9 views
3

私は現在Firebaseを使ってアプリを作っています。firebase - >日付順逆

これは、Web上のどこにでも見られる掲示板の1つです。

しかし、問題が1つありました。

これは日付ソートの問題です。

最近の日付を最初に見たいと思いますが、最初に作成したデータだけが表示されます。

postRef.orderByChild('createData').startAt(reverseDate).limitToFirst(1).on('child_added',(data)=>{ 
    console.log(data.val().name + data.val().createData); 
}) 

結果 - >hello1496941142093

マイfirebaseツリー​​

私のコードは上記と同じです。

最近の投稿を最初に確認するにはどうすればよいですか?

ファイヤーベースデータベースの逆順を注文しますか?

答えて

10

Firebaseデータベースは常に昇順で結果を返します。それらを逆にする方法はありません。

  1. データベースがフィルタリングをやってみましょう、しかし、結果のクライアント側を逆:

    は、このために2つの一般的な回避策があります。

  2. 逆の値をデータベースに追加し、クエリに使用します。

これらのオプションはかなり前に数回適用されました。代わりに繰り返しからだから、私は前の回答のリストをあげる:

+0

を試すことができます。..最初のiは、0を理解していないありがとう - 。)新しい日付(Getitme()データベース内firebaseにに挿入..しかし、ではない私は理解して.. ありがとうございました! –

1

私はかつてFirebaseプロジェクトを作っていましたが、リストを逆順に並べるネイティブな方法はないようです。私の解決策は、値に-1を掛けて、そうすることで順序を逆転させることでした。その後、データベースから引き出すたびに、-1を再度掛ける必要があることを覚えておく必要があります。

1

単にオブジェクトを反転させてからトラバースすることができます歌う。

function reverseObject(object) { 
    var newObject = {}; 
    var keys = []; 

    for (var key in object) { 
     keys.push(key); 
    } 

    for (var i = keys.length - 1; i >= 0; i--) { 
     var value = object[keys[i]]; 
     newObject[keys[i]]= value; 
    }  

    return newObject; 
} 
2

あなたはこのコード

ref.orderBy("name", "desc").limit(3) 
関連する問題