我正在尝试从Firebase数据库中获取项目列表...但是获取它们时遇到了问题。我的代码大致如下所示:
List<Items> itemsList;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_work_items_report);
itemsList = GetItems();
}
和应该返回我的项目的方法如下所示:
private ArrayList<Items> GetItems(){
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = database.child("items");
final ArrayList<Items> itemsRez = new ArrayList<Items>();
Query itemsQuery = ref.orderByChild("type");
itemsQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot singleSnapshot : dataSnapshot.getChildren()) {
Items item = singleSnapshot.getValue(Items.class);
itemsRez.add(item);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return itemsRez;
}
GetItems()总是返回一个空列表,这很有意义,因为在我返回该列表之前没有什么可以触发onDataChange事件的,所以我的问题是...如何使该方法返回项目列表从数据库?
相关分类