Android Firestore-为什么我的空字段不是空的?
我在做申请的时候偶然发现了一个非常奇怪的错误。有一个功能,点击按钮,用户可以从存储器中删除整个Firestore文档和相应的文件。我将图片的整个URL存储在文档中的字符串字段中,但是这个URL可能是空的,这就是我的问题。我检查这个URL字段是否为null,但不知何故,我的代码设法跳过了这个逻辑语句并尝试删除该文件,这就是我得到一个很好的null指针异常的地方Android Firestore-为什么我的空字段不是空的?,android,firebase,google-cloud-firestore,google-cloud-storage,Android,Firebase,Google Cloud Firestore,Google Cloud Storage,我在做申请的时候偶然发现了一个非常奇怪的错误。有一个功能,点击按钮,用户可以从存储器中删除整个Firestore文档和相应的文件。我将图片的整个URL存储在文档中的字符串字段中,但是这个URL可能是空的,这就是我的问题。我检查这个URL字段是否为null,但不知何故,我的代码设法跳过了这个逻辑语句并尝试删除该文件,这就是我得到一个很好的null指针异常的地方 docRef = fStore.collection("ActiveJobs").document(docID);
docRef = fStore.collection("ActiveJobs").document(docID);
docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if (documentSnapshot.exists()) {
if (documentSnapshot.getString("jobPictureUrl") != null || documentSnapshot.get("jobPictureUrl) != null) {
String pictureUrl = documentSnapshot.getString("jobPictureUrl");
storageRef = fStorage.getReferenceFromUrl(pictureUrl);
storageRef.delete();
}
}
}
});
docRef=fStore.collection(“ActiveJobs”).docID文档;
docRef.get().addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(文档快照文档快照){
if(documentSnapshot.exists()){
if(documentSnapshot.getString(“jobPictureUrl”)!=null | | documentSnapshot.get(“jobPictureUrl”)!=null){
String pictureUrl=documentSnapshot.getString(“jobPictureUrl”);
storageRef=fStorage.getReferenceFromUrl(pictureUrl);
storageRef.delete();
}
}
}
});
如您所见,我确实通过两种不同的方式检查此字段是否为空,但不知何故,此语句总是返回它不是空的,并且我的storageRef行得到一个空指针异常,因为上面的pictureUrl为空。我尝试检查pictureUrl是否为空,但仍然得到相同的错误
希望您能帮助我,并感谢您阅读本文!
jobPictureUrl
字段不是空成员。它是一个空的字符串
因此,您必须检查字符串是否为空;但当前您正在执行null
检查
if(!documentSnapshot.getString(“jobPictureUrl”).isEmpty()){
}
isEmpty()-返回true
当且仅当字符串length()
为0时