2017-12-15 12 views
2

Wie kann ich DataSnapshot Kinder Wert steuern, wenn kein Kind mit if-Anweisung ist. Zum Beispiel Meldung erhalten, wenn keine Kinder da erstefirebase datasnapshot steuern die Kinder

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

     } 
    }); 

Antwort

1

ist haben Sie die datasnapshot getValue() geben nicht kann null

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

Vielen Dank, es ist Arbeit –

+0

gerne –

+0

machen upvote helfen :) Leider habe ich nicht die Erlaubnis upvote –

1

Sie hasChildrendataSnapshot Kinder haben oder nicht zu erkennen, um zu überprüfen.
Wie

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