Как я могу контролировать, когда поле ссылки на тип равно нулю в Firebase Firestore? - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю с полями типа reference в Firestore.

Это мой код:

    DocumentReference calRef = db.collection(calendarPath).document(fechaYYYY).collection(fechaMM).document(fechaDD);
    calRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
        @Override
        public void onEvent(@Nullable DocumentSnapshot calSnapshot,
                            @Nullable FirebaseFirestoreException e) {
            DocumentReference dataRef=calSnapshot.getDocumentReference("1");
            if (e != null || dataRef==null) {
                launchVolley();
                return;
            }

            if (calSnapshot != null && calSnapshot.exists()) {
                dataRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot dataSnapshot) {
                        mBreviario = dataSnapshot.toObject(Breviario.class);
                        Log.d(TAG,dataSnapshot.toString());
                        showData();
                    }
                });
            } else {
                launchVolley();
            }
        }
    });

Здесь DocumentReference dataRef=calSnapshot.getDocumentReference("1"); Я беру одну ссылку на другой документ.

Здесь if (calSnapshot != null && calSnapshot.exists()) { Я пытаюсь получить данные по этой ссылке.

Это работает нормально, но если ссылка на документ, взятая на dataRef, не существует, на самом деле у меня ошибка NPE.

Мой журнал показывает, что:

D/OficioActivity: DocumentSnapshot{key=liturgia/lh/1/307040501,
metadata=SnapshotMetadata{hasPendingWrites=false, isFromCache=false},
doc=null}

Здесь я вижу: doc=null Я думаю, что это ссылка на мой документ. Но кто я могу контролировать, когда это ноль.

Здесь я попытался сделать этот элемент управления:

        if (e != null || dataRef==null) {
            launchVolley();
            return;
        }

Но не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...