#SOLVED infor / connection return false, даже если устройство подключено к Интернету - PullRequest
0 голосов
/ 12 июля 2019

В качестве заголовка я использую infor/connection для проверки соединения между клиентом и базой данных, но если я удалю и переустановлю приложение, infor/connection вернет true и вернет false после этого, даже если устройство может доступ к Интернету, я проверил на реальном и виртуальном устройстве, и эта проблема все еще остается.

это код для проверки соединения:



 mValueEventConnection = new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                boolean isConnected = dataSnapshot.getValue(Boolean.class);

                updateConnectionStatus(isConnected);

                Log.d("SSSSS-CONNECTION", isConnected + "");

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d("SSSSS-CONNECTION", databaseError + "");
            }
        };

        CONNECT_REF.addValueEventListener(mValueEventConnection);

и результат:

 D/SSSSS-CONNECTION: true
 D/SSSSS-CONNECTION: false

UPDATE:

После переустановки и первого запуска приложения проблема будет возникать, но во второй раз - нет.

1 Ответ

0 голосов
/ 13 июля 2019

Псевдоузел .info/connection указывает, имеет ли клиент соединение с сервером базы данных Firebase, а это не просто подключение к Интернету.

Обратите внимание, что клиент Firebase автоматически отключается через минуту, если нет активного прослушивателя данных и нет записей.Поэтому, если у вас нет активных слушателей или записей, и отключение происходит примерно через минуту или около того после подключения, это может объяснить поведение.

В этом последнем случае вы можете присоединить слушателя к некоторой обычной части вашегоданные или какой-либо другой несуществующий узел: FirebaseDatabase.getInstance().getReference("ThisDoesNotExist").addValueEventListener(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...