Problema offline com Firestore x Firebase

Eu converti um dos meus aplicativos para o novo Firestore. Estou fazendo coisas como salvar um documento em um clique de botão e, em seguida, noonSuccess ouvinte, indo para uma atividade diferente.

Também uso o fato de que as operações de salvamento do Firestore retornam tarefas, para agrupar tarefas usandoTasks.whenAll:

val allTasks = Tasks.whenAll(
       createSupporter(supporter),,
       setStreetLookup(makeStreetKey(supporter.street_name)),
       updateCircleChartForUser(statusChange, createMode = true), 
       updateStatusCountForUser(statusChange))

      allTasks.addOnSuccessListener(this@SignUpActivity, successListener)
      allTasks.addOnFailureListener(this@SignUpActivity, onFailureListener)

Por fim, obtenho o ID do documento de um salvamento bem-sucedido e o armazeno em preferências ou em um banco de dados local para uso posterior (dentro do diretórioonSuccessListener)

Tudo isso funciona muito bem.Até que haja uma perda de conectividade de rede. Então tudo se desfaz, porque as tarefas nunca são concluídas e os ouvintes onSuccess / onFailure / onComplete nunca são chamados. Então o aplicativo simplesmente trava.

Estou trabalhando para contornar isso, verificando a disponibilidade da rede antes de cada salvamento e, em seguida, executando uma solução alternativa criando tarefas sem nenhum ouvinte. Também estou gerando uma identificação de documento localmente usando um gerador UUID.

Não era assim que o aplicativo funcionava com o antigo firebase. Nesse caso, tudo funcionava bem quando estava offline e eu via documentos sendo sincronizados sempre que o aplicativo ficava online.

Minha solução alternativa para o Firestore parece um truque terrível. Alguém veio com uma solução melhor?

Veja relacionadosBanco de dados do Firestore ao inserir / excluir retornos de chamada de documentos que não são chamados quando não há conexão addOnCompleteListener não chamado offline com firestore na nuvem

questionAnswers(3)

yourAnswerToTheQuestion