Я работаю над модулем чата в моем проекте. Для этого модуля я использую Firebase.
В этом модуле я должен отображать статус пользователя онлайн и оффлайн. Состояние офлайн и онлайн работает во всех сценариях ios, например, когда он закрывает приложение, выходит из приложения и т.д. c.
Но проблема в том, что когда пользователь A общается с пользователем B, если, к сожалению, пользовательское соединение B net было разорвано или в режиме полета, я не могу обновить статус офлайн в firebase. Из-за этого пользователь A по-прежнему видит пользователя B в сети
. Пожалуйста, найдите мой код ниже вместе с моей структурой Firebase:
DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
//System.out.println("connected");
Map<String, Object> typingKey = new HashMap<>();
typingKey.put("status", "online");
mDatabaseReference.child(FirebaseConstants.USERS).child(mFirebaseAuth.getCurrentUser().getUid()).child(FirebaseConstants.PROFILE).updateChildren(typingKey);
//Toast.makeText(HomeScreenActivity.this, "connect", Toast.LENGTH_LONG).show();
} else {
//here if try update data it is getting updated
//Toast.makeText(HomeScreenActivity.this, "no connect", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
Toast.makeText(HomeScreenActivity.this, "cancel connect", Toast.LENGTH_LONG).show();
}
});