Собственно надо обработать ошибку соединения. Пропала сеть итд. При запросе к базе FireBase , когда вызывается addChildEventListener думаю сделать таймаут на запрос, к примеру 10 секунд. Что бы в некоторых случаях показывать сообщение об Ошибке.
Сам addChildEventListener такого метода не предоставляет. Может кто то делал подобное ?
Сеть проверяю вот так:
if (!NetworkChecker.isNetworkAvailable(getActivity())) {
showToast(getString(R.string.connection_error));
}
Ну и сам запрос:
private void GetDataFireBase(String columnFireBaseData) {
DatabaseReference databaseReference = firebaseDatabase.getReference().child(columnFireBaseData);
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, String s) {
ItemCatalog item = dataSnapshot.getValue(ItemCatalog.class);
autoList.add(item);
recyclerView.setAdapter(adapter);
progressBar.setVisibility(View.GONE);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, String s) {
Log.d(TAG, "onChildChanged: ");
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
Log.d(TAG, "onChildRemoved: ");
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, String s) {
Log.d(TAG, "onChildMoved: ");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, "onCancelled: ");
}
});
}
Firebase предоставляет механизм работы с базой даже при отсутствии подключения. То есть ваши данные будут доступны, даже если пропадет подключение.
И еще, у вас есть метод проверки доступности сети, сделайте для него runnable и установите таймер, после чего показывайте свой тост.
Продвижение своими сайтами как стратегия роста и независимости