我有一个firebase查询。我已经添加了“addValueEventListener”。 “dataSnapshot”中的“onDataChange”,我看到所有3个应该由查询获取的子数据。
现在,我在Firebase Recycler Adapter中传递此查询引用以创建回收器视图,但我看到视图中只有一个数据而不是所有3个孩子数据。
//这就是我创建查询引用的方式。
currentUser = firebaseAuth.getCurrentUser();
mDatabase = FirebaseDatabase.getInstance().getReference();
ordersRef = mDatabase.child("orders");
ordersQuery = ordersRef.orderByChild("userId").equalTo(currentUser.getUid().toString());
ordersQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
isOrdersEmpty = ! dataSnapshot.hasChildren();
Log.i("ORDERS: ", "You have orders: " + isOrdersEmpty + dataSnapshot);
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Log.i("ORDER: ", "Your ORDER : " + snapshot);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
在此之后,我在Firebase Recycler Adapter
中传递此查询引用FirebaseRecyclerAdapter<Orders, OrdersActivity.OrdersViewHolder> FBRA = new FirebaseRecyclerAdapter<Orders, OrdersViewHolder>(
Orders.class,
R.layout.orders_list,
OrdersActivity.OrdersViewHolder.class,
ordersQuery
) {
@Override
protected void populateViewHolder(OrdersViewHolder viewHolder, Orders model, int position) {
viewHolder.setOrderId(model.getOrderId());
viewHolder.setTxnAmount(model.getTxnAmount());
viewHolder.setTxnId(model.getTxnId());
final String orderId = getRef(position).getKey().toString();
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent orderDetailActivity = new Intent(OrdersActivity.this, OrderDetailActivity.class);
orderDetailActivity.putExtra("orderId", orderId);
startActivity(orderDetailActivity);
}
});
}
};
mOrdersRecyclerView.setAdapter(FBRA);
当我在应用程序中看到视图时,它只显示一个数据,同时它应显示3个数据。