0

I have this error when attempting to write to Firestore Database and I am at a loss. This is happening because documentReference.getDocuments() is empty but I expect it to be non-empty.

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.uni.strengthprogression.data.FirebaseManager$9.onSuccess(FirebaseManager.java:120)
    at com.uni.strengthprogression.data.FirebaseManager$9.onSuccess(FirebaseManager.java:117)

Line 117:

.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {

Line 120:

String id = documentReference.getDocuments().get(0).getId();

Full method:

public static void addBenchSession(String userEmail, Session session, BackGroundTaskOperation backGroundTaskOperation) {
        db.collection("users").whereEqualTo("email", userEmail).get()
                .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                    @Override
                    public void onSuccess(QuerySnapshot documentReference) {
                        String id = documentReference.getDocuments().get(0).getId();
                        db.collection("users")
                                .document(id)
                                .update("bench_sessions", FieldValue.arrayUnion(session.toMap()))
                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                    @Override
                                    public void onSuccess(Void aVoid) {
                                        Log.d(TAG, "Successfully added document");
                                        backGroundTaskOperation.onSuccess(null);
                                    }
                                })
                                .addOnFailureListener(new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        Log.w(TAG, "Error adding document", e);
                                    }
                                });
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.w(TAG, "Error adding document", e);
                    }
                });
    }

This is the database I am attempting to write to

Captain Man
  • 6,997
  • 6
  • 48
  • 74

1 Answers1

0

Andreas and Alex were correct... userEmail was null as I hadn't correctly utilized putExtra() and getExtra().