I'm having trouble with checking if my collections exists in Firestore database. When I was working with Firebase Realtime database i could have used:
if(databaseSnapshot.exists)
Now with Firestore I wanna do the same. I have already tried
if (documentSnapshots.size() < 0)
but it doesn't work. Here is the current code:
public void pullShopItemsFromDatabase() {
mShopItemsRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
ShopItem shopItem = document.toObject(ShopItem.class);
shopItems.add(new ShopItem(shopItem.getImageUrl(), shopItem.getTitle(), shopItem.getSummary(), shopItem.getPowerLinkID(), shopItem.getlinkToShopItem(),shopItem.getLinkToFastPurchase(), shopItem.getKey(), shopItem.getPrice(),shopItem.getVideoID()));
}
if (shopItems != null) {
Collections.sort(shopItems);
initShopItemsRecyclerView();
}
} else {
Log.w(TAG, "Error getting documents.", task.getException());
setNothingToShow();
}
}
});
}
the function: setNothingToShow(); Is actually what I wanna execute if my collection is empty / doesn't exists. Please advise! Thanks, D.
Use
DocumentSnapshot.size() > 0
to check if the collection exists or not.Here is an example from my code:
exists()
applies toDocumentSnapshot
while you're dealing withQuerySnapshot
Call task.result for getting
QuerySnapshot
out ofTask<QuerySnapshot>
.From that, call
result.getDocuments()
and iterate through each of theDocumentSnapshot
callingexists()
on them.