我如何控制Firebase Firestore中类型引用字段为null的时间?

时间:2019-04-04 11:00:39

标签: android firebase google-cloud-firestore

我正在Firestore中处理reference类型的字段。

这是我的代码:

    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;
        }

但是不起作用。

0 个答案:

没有答案