【问题标题】:firebase datasnapshot control the childrenfirebase 数据快照控制孩子
【发布时间】:2017-12-15 14:02:09
【问题描述】:

如果没有带有 if 语句的子级,我如何控制 DataSnapshot 子级的值。例如,没有孩子时获取消息

 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) {

        }
    });

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    首先您必须检查数据快照 getValue() 是否返回 null

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

    【讨论】:

      【解决方案2】:

      您可以使用hasChildren 来检测dataSnapshot 是否有孩子。
      喜欢

      if(!snapshot.hasChildren()){
          // snapshot has no children
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 2021-07-03
        • 1970-01-01
        • 2016-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多