从Firebase查询数据

我正在尝试从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事件的,所以我的问题是...如何使该方法返回项目列表从数据库?


弑天下
浏览 456回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android