私はこのようなFirebaseデータベースを持っています。私がエポックタイムを取得し、ゼロから、それを差し引いてartCreated
価値を生み出すことに留意すべきである:OrderByChild()は正しくソートされていません(またはまったく)
私が最も最近の提出を取得しようとしていますが、私は逆にするために取得することはできません。
:私はのようなものを行うことによって、逆の順序(最新)を取得しようとしていDatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
final DatabaseReference artRef = databaseReference.child("artwork");
:私はのように見えるDBの参照、に渡し
public class RecentArtRecyclerViewAdapter extends RecyclerView.Adapter<RecentArtRecyclerViewAdapter.ArtworkViewHolder> {
//List<ArtworkModel> artwork;
private Context context;
private DatabaseReference dbReference;
private ChildEventListener mChildEventListener;
ArrayList<String> artworkKeys = new ArrayList<>();
ArrayList<ArtworkModel> artwork = new ArrayList<>();
public RecentArtRecyclerViewAdapter(Context context, DatabaseReference dbReference){
this.context = context;
this.dbReference = dbReference;
dbReference.limitToFirst(100);
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.d(TAG, "Artwork added...");
ArtworkModel artworkModel = dataSnapshot.getValue(ArtworkModel.class);
artwork.add(artworkModel);
artworkKeys.add(dataSnapshot.getKey());
notifyItemInserted(artwork.size()-1);
}
:ここに私のコードです
dbReference.limitToFirst(100);
dbReference.limitToLast(100);
dbReference.orderByChild("artCreated");
dbReference.orderByChild("artCreated").limitToLast(10);
dbReference.orderByChild("artCreated").limitToFirst(10);
artCreated
の値を変更してみましたが、すべてが負の数(最小から最大)で開始され、1つの負の数と残りのプラス(最大最小から最小)、同じ結果が得られました。 artCreated
キーは注文に影響を与えていないようです。
何も問題ありません。常にデータベースに格納される順序と同じです。私は間違って何をしています。私はこれに関する多くの答えを参照しましたが、何も私のために働いていません。
- は、データ
を注文しますクエリの最も簡単な方法を作成したデータ、クライアント側
[AndroidでのFirebaseデータの並べ替え]の可能な複製(http://stackoverflow.com/questions/34156996/firebase-data-desc-sorting-in-android) –
@vishnunarayanan私は既にそれを参照して試しましたそれ。 – BlackHatSamurai
@BlackHatSamuraiは、 'artCreated'がdbの' string'型であることが原因でしょうか? – Droidwala