我正在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;
}
但是不起作用。