2017-08-24 192 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