I get this run time error that I do not understand the reason behind it.
com.google.firebase.firestore.FirebaseFirestoreException: Failed to get document because the client is offline.
Below is the code in my Activity that tries to fetch data from the cloud Firestore
DocumentReference docRef = db.collection("room-id-1").document("participan-name-1");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
Log.d(TAG, "DocumentSnapshot data: " + task.getResult().getData());
userData.registerUserToHotspot(roomId_str, participantName_str);
} else {
Log.d(TAG, "No such document");
}
} else {
Log.d(TAG, "get failed with ", task.getException());
}
}
});
Is there something I can do about this?
This happens because
OnCompleteListener
is triggered when the task is completed, either it fails or succeeds. To avoid the error, you can use separateOnSuccessListener
andOnFailureListener
.OnSuccessListener
is called when the task is succeeded, but if the above error occurs,OnFailureListener
will be triggered and you can handle the error inonFailure()
method of the listener.Happy Coding :)
if you are using rxjava then it wiil be simple to catch throwable this way:
Otherwise try somehow catch it in promise or/and try-catch block
I had the same exception when I used wrong path to the document. When I fixed the path it started to work.
Anyway, the error message is misleading.
In my case the solution was to create a new emulator in Android Studio and run the app there