Состояния Firebase:
На Android Firebase автоматически управляет состоянием соединения, чтобы уменьшить пропускную способность и расход батареи.Когда у клиента нет активных прослушивателей, нет ожидающих операций записи или onDisconnect, и он явно не отключен методом goOffline, Firebase закрывает соединение через 60 секунд бездействия.
Проблема: .info/connected
говорит"не подключен", даже если интернет включен через 60 секунд.
Мой активный слушатель ->
keepConnected = database.getReference().child(“keep_open”);
keepConnected.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.v(TAG,snapshot.getValue().toString());
}
@Override
public void onCancelled(DatabaseError error) { }
});
Моя информация / подключенный слушатель ->
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");
} else {
System.out.println("not connected");
}
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});
Logs:
06-25 15:10:08.994 7572-7572/com.yourgesture.androidgesturecourier V/KEEPOPEN: 1529816684493
06-25 15:10:13.361 7572-7572/com.yourgesture.androidgesturecourier V/INTERNET: true
ONLINE
06-25 15:11:03.803 7572-7572/com.yourgesture.androidgesturecourier V/INTERNET: false
OFFLINE (edited)