我正在使用Firebase制作聊天应用程序,我需要立即了解该用户在线还是离线。但是,当用户突然失去网络时,就会出现onDisconnect方法。但是更新实时数据库需要花费太多时间。
这是我的代码。请为这个问题分享更好的解决方案。
DatabaseReference infoConnected = FirebaseDatabase.getInstance().getReference(".info/connected");
final DatabaseReference UpdateRef = FirebaseDatabase.getInstance().getReference("/Status/"+mAuth.getUid());
infoConnected.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
boolean isCon = dataSnapshot.getValue(Boolean.class);
if(isCon)
{
DatabaseReference reference = UpdateRef.child("Status");
reference.setValue("Online");
reference.onDisconnect().setValue("Offline");
}
}
谢谢。