如何在没有if语句的子级时控制datasnapshot children值。例如,当没有子级时获取消息

 protected void onStart() {
    super.onStart();
    databaseOrders.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            personList.clear();
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                Person person = postSnapshot.getValue(Person.class);
                personList.add(person);
            }
            recyclerView.setHasFixedSize(true);
            // use a linear layout manager
            mLayoutManager = new LinearLayoutManager(DetailActivity.this);
            recyclerView.setLayoutManager(mLayoutManager);

            personAdapter = new PersonAdapter(DetailActivity.this, personList);
            personAdapter.setClickListener(DetailActivity.this);
            recyclerView.setAdapter(personAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

最佳答案

首先必须检查datasnapshot getvalue()是否返回null

if(datSnapshot.getValue()!=null){
       for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
            if(postSnapshot.getValue()!=null){
                Person person = postSnapshot.getValue(Person.class);
                personList.add(person);}
            }}

10-08 05:25
查看更多