Closed filipegarrett closed 5 years ago
Eu fiz uns testes aqui por curiosidade em cima de uma teoria que eu tinha. Como o problema no acionamento da persistência local parecia ser relacionado com a necessidade de chamar apenas uma vez o método, acabei aplicando essa chamada na classe App, a primeira que o Android executa quando o aplicativo é aberto e até aqui os testes preliminares tem sido bem sucedidos.
Para poder persistir dados localmente na ausência de conexão, precisamos migrar todas as instâncias de banco de DatabaseReference para FirebaseReference que permite usar o método setPersistenceEnabled(true).
Isso significa que:
Não funciona. A implementação correta seria:
Aí dentro das classes, ao criar um objeto FirebaseDatabase, passamos o .getReference().
Eu fiz uns testes superficiais e encontrei vários problemas: para começar, o getReference() que usamos para apontar para o primeiro nó do banco não pode ser chamado diretamente por um FirebaseDatabase. Encontrei outros problemas também que provocam crash no app referentes à necessidade de se chamar setPersistenceEnabled(true).
Marquei nós dois nessa issue porque a coisa parece que vai ser mais complicada - não porque seja um processo complexo, mas sim porque criamos todo o projeto de um jeito e teremos que retrabalhá-lo - e porque temos várias classes para ajustar. Sugiro fazer testes aí também para ver se você encontra uma forma de migrar o projeto sem tanto estresse.