如何解决Firestore - 为什么我的空字段不为空?
我在申请时偶然发现了一个非常奇怪的错误。有一个功能,点击按钮用户可以从存储中删除整个 Firestore 文档和相应的文件。我将图片的整个 URL 存储在文档内的字符串字段中 - 但这个 url 可以为空,这是我的问题。我检查这个 URL 字段是否为空,但不知何故我的代码设法跳过这个逻辑语句并尝试删除文件,这就是我得到一个很好的空指针异常的地方。
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();
}
}
}
});
如您所见,我确实以两种不同的方式检查此字段是否为空,但不知何故此语句总是返回它不为空,并且我的 storageRef 行获得空指针异常,因为上面的图片Url 是空的。我试图检查 pictureUrl 是否为空,但仍然出现相同的错误...
This is how I store the empty string field
希望您能帮助我,感谢您阅读本文!
解决方法
jobPictureUrl
字段不是空成员。这是一个空的 String
。
所以,你必须检查 String
是否为空;但目前您正在进行 null
检查。
if (!documentSnapshot.getString("jobPictureUrl").isEmpty()) {
}
isEmpty() - 当且仅当字符串 true
为 0 时返回 length()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。