Isuru Bandara
Isuru Bandara

Reputation: 360

addOnFailureListener not working in offline mode and network issues

addOnFailureListner does not work for add() data, but addOnFailureListner works for get().

This is not working

      WorkPlaceRef.add(DATA).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
            @Override
            public void onComplete(@NonNull Task<DocumentReference> task) {

                  //Successfully created - This one triggers when I turn on wifi again.

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // Error - This addonFailureListner is not working when there are no network.

            }
        });

This is working

      WorkPlaceRef.get().addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
            @Override
            public void onComplete(@NonNull Task<DocumentReference> task) {

                  //Successfully received - This one triggers when I turn on wifi again.

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {

                // Error - this addonFialureListner triggers when there is no network.

            }
        });

Upvotes: 0

Views: 691

Answers (1)

Doug Stevenson
Doug Stevenson

Reputation: 317362

It's not a failure to attempt to write data while offline. The Firestore SDK will write the data in a local offline cache first, and eventually synchronize that write with the server when the app comes back online. The success listener will be invoked whenever that happens.

Write failures only happen when there is some problem that can't be retried due to lack of connectivity, such as security rule violations, or exceeding some documented limit of the database.

If you want to know if some document data is not yet synchronized with the server, you can check its metadata to know if a write is pending.

Upvotes: 1

Related Questions