limitToLast被忽略了

时间:2017-08-24 21:00:19

标签: android firebase firebase-realtime-database

我需要一些帮助。我正在尝试从firebase数据库中检索最后2个值,但以下代码返回所有3个值。我做错了什么?

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是userId。 提前谢谢!

1 个答案:

答案 0 :(得分: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) {...}