Banco de dados do Firestore ao inserir / excluir retornos de chamada de documentos que não são chamados quando não há conexão
Estou tentando o banco de dados do firestore no Android.
Este é o meu código que insere um documento:
public Observable<Post> createPost(final Post post){
return Observable.create(new Observable.OnSubscribe<Post>() {
@Override
public void call(final Subscriber<? super Post> subscriber) {
try{
DocumentReference documentReference = getCollection().document();
post.setId(documentReference.getId());
documentReference.set(post).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
subscriber.onNext(post);
subscriber.onCompleted();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
subscriber.onError(e);
subscriber.onCompleted();
}
});
}catch (Exception ex){
subscriber.onError(ex);
Log.e(LOG_TAG, ex.getMessage(), ex);
}
}
});
}
O documento é inserido no banco de dados, mas nem os retornos de chamada onSuccess nem onFailure são chamados.
Atualização 11) O problema não é consistente, às vezes funciona, às vezes os retornos de chamada são invocados após uma hora, às vezes após 3 horas etc.
2) Isso está acontecendo quando não há conexão com a internet.
Atualização 21) O problema foi relatadoaqui e está fechado. Não sei como garantir a correção dos dados criados offline.