2017-08-24 276 views
0

我需要一些幫助。我試圖從firebase數據庫中檢索最後2個值,但以下代碼返回所有3個值。我究竟做錯了什麼?limitToLast被忽略

FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance(); 
DatabaseReference mDatabaseReference = mFirebaseDatabase.getReference().child("data/" + userId + "/contents/"); 
mDatabaseReference.limitToLast(2); 

mFirebaseAdapter = new FirebaseRecyclerAdapter<MyObject, MyObjectViewHolder>(
       MyObject.class, 
       R.layout.item, 
       MyViewHolder.class, 
       mDatabaseReference) {...} 

這是我的數據庫結構的樣子:

d5TPjSY2rJRrFJUF7nPrQWcGAjh1 
contents 
-KqKbcnMfHwYKChXHiCA 
-KqKbibX3f96ceVfoTLV 
-KrBrtsHeLaWv_gEUjIT 

其中d5TPjSY2rJRrFJUF7nPrQWcGAjh1是用戶ID。 在此先感謝!

回答

2

當您致電limitToLast()(或任何其他查詢方法)時,它會返回一個新對象。你必須使用這個新的對象。

DatabaseReference mDatabaseReference = mFirebaseDatabase.getReference().child("data/" + userId + "/contents/"); 
Query query = mDatabaseReference.limitToLast(2); 
mFirebaseAdapter = new FirebaseRecyclerAdapter<MyObject, MyObjectViewHolder>(
       MyObject.class, 
       R.layout.item, 
       MyViewHolder.class, 
       query) {...} 
+0

謝謝弗蘭克!我錯過了。順便說一句,我喜歡你的視頻! :) – MS2099