Warm tip: This article is reproduced from stackoverflow.com, please click
android firebase java google-cloud-firestore

How to check for an empty document on Firestore?

发布于 2020-03-27 10:27:53

So I am trying to delete a document on Firebase Firestore which contains no fields. But how can I check whether the document contains no data before I delete it?

enter image description here

Questioner
Abhinav Prakash
Viewed
334
Alex Mamo 2018-07-27 20:18

To solve this, you should get the data from the database as a Map:

yourDocumentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                Map<String, Object> map = document.getData();
                if (map.size() == 0) {
                    Log.d(TAG, "Document is empty!");
                } else {
                    Log.d(TAG, "Document is not empty!");
                }
            }
        }
    }
});

To check a document only for existens it doesn't mean that is empty. The document can exist (like in your screenshot) but has no properties set. Because every document in a Cloud Firestore database is a Map, you can use size() method to see if is empty or not.