目前尚不清楚如何使用自定义查询填充 FirebaseRecyclerAdapter。
定义一个参考。这里:DatabaseReference ref = mDatabase.getReference().child("users");
将其发送到适配器 initAdapter(ref);
-
定义查询并设置侦听器。这样对吗?
mAdapter = new FirebaseRecyclerAdapter<User, UserHolder>(User.class, R.layout.user_row_layout, UserHolder.class, ref) {
@Override
protected void populateViewHolder(final UserHolder viewHolder, final User model, int position) {
Query query = ref.orderByChild("group").equalTo(uid);
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
viewHolder.setName(model.getName());
viewHolder.setStatus(getStatus(model.getStatus()));
}
// ...
};
仍然显示来自用户的所有数据。只需要根据 uid 进行过滤即可。有什么线索吗?
对于那些像我一样试图让事情变得过于复杂的人,或者在晚上工作的人,这里有一个解决方案:
mAdapter = new FirebaseRecyclerAdapter<User, UserHolder>(
User.class,
R.layout.user_row_layout,
UserHolder.class,
ref.orderByChild("group").equalTo(uid)
) {
@Override
protected void populateViewHolder(final UserHolder viewHolder, final User model, int position) {
viewHolder.setName(model.getName());
viewHolder.setStatus(getStatus(model.getStatus()));
}
// ...
};
Chao!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)