Firebase Android leva até 45 minutos para se reconectar

Em alguns dispositivos (lista fornecida abaixo), o Firebase leva consistentemente entre 20 e 45 minutos para se reconectar após a recuperação da conexão com a Internet. Alguma coisa pode ser feita para acelerar as coisas?

Eu primeiro pensei que o problema veio do.info/connected o ouvinte de evento não está sendo acionado, mas percebi que, se houvesse algumas gravações pendentes, elas também seriam confirmadas após esse longo atraso, quando o ouvinte de evento foi acionado.

Tentei ouvir o estado da conectividade e ligar manualmentegoOffline / goOnline, mas não produziu nenhum resultado.

O problema pode ser reproduzido com o exemplo de banco de dados de introdução do Android, por exemplo, adicionando o seguinte aoonCreate método doSignInActivity.

// test data value event listener
mDatabase.child("test").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        String value = snapshot.getValue(String.class);
        Log.d(TAG, value);
    }
    @Override
    public void onCancelled(DatabaseError error) {
        Log.d(TAG, error.getMessage());
    }
});
// test presence value event listener
mDatabase.child(".info/connected").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        boolean connected = snapshot.getValue(Boolean.class);
        Log.d(TAG, String.valueOf(connected));
    }
    @Override
    public void onCancelled(DatabaseError error) {
        Log.d(TAG, error.getMessage());
    }
});

Caso isso ajude, o uso do pacote web firebase e o react-native exibem o mesmo comportamento nos mesmos dispositivos.

Aqui está uma lista de dispositivos em que vi o problema:

samsung galaxy viewchuwi-hi12 - 5.1touchlet x13 octaasus zenpad 300 chuawei mediapad t2

Esses dispositivos nunca exibem esse comportamento:

acer iconia one 10 b3-a30-k5essamsung galaxy tab E - 5.1archos 121D neon

Finalmente, aqui estão os logs para um dispositivo sem problemas e um dispositivo com o problema:

log ok:https://gist.github.com/VonD/eb79a57e69bc5026f0a1f145635ccd6alog not ok:https://gist.github.com/VonD/a26e194859453e2c538dd8b9e6573b62

Em ambos os casos, iniciei o aplicativo, desliguei o wifi e esperei o.info/connected ouvinte de evento a ser acionado e ativou o wifi novamente. Os registros de data e hora mostram as diferenças de atraso nos dois dispositivos.

questionAnswers(0)

yourAnswerToTheQuestion