微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firestore - 为什么我的空字段不为空?

如何解决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 举报,一经查实,本站将立刻删除。