There are ten activity java code, seven activity need to firebase data. so i added firebaseListener(addChildEventListener). Because data is updated in each activity, each activity need to each Listener. In my mind, it can work just one code...(because many people will say this is redundancy) service, thred..? what i have to use.
mDatabase.child("Room-List").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
String key = dataSnapshot.getKey();
if(key.equals(roomName)) {
room = dataSnapshot.getValue(Room.class);
gap = room.gap;
nextTime = room.nextTime;
gameMode = room.gameMode;
break;
}
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(DatabaseError databaseError) { }
});
//Member-List - nickName, online, state, position
mDatabase.child("Room-List").child(roomName).child("Member-List").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
AllnickName = "";
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
Person person = dataSnapshot.getValue(Person.class);
if(person.online) {
online++;
AllnickName += person.nickName;
break;
}
}
TextView_person.setText(AllnickName);
TextView_roomName.setText(roomName + online);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) { }
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) { }
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
@Override
public void onCancelled(DatabaseError databaseError) { }
});
}