Ich habe Probleme mit der Überprüfung, ob meine Sammlungen in der Firestore-Datenbank vorhanden sind. Wenn ich mit Firebase Realtime Datenbank arbeite ich verwendet haben könnte:Wie überprüft man, ob die Cloud Firestore-Sammlung existiert? (querysnapshot)
if(databaseSnapshot.exists)
Jetzt mit Firestor ich das gleiche tun will. Ich habe bereits versucht,
if (documentSnapshots.size() < 0)
aber es funktioniert nicht. Hier ist der aktuelle 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();
}
}
});
}
die Funktion: setNothingToShow(); Ist eigentlich was ich ausführen möchte, wenn meine Sammlung leer ist/nicht existiert. Bitte beraten! Danke, D.
'if (documentSnaphots.size() <0)' wird nie wahr sein. Es sollte 'if (documentSnaphots.size() == 0)' oder 'if (documentSnaphots.size()> 0)' (je nachdem, wo Sie es setzen) sein. –
@FrankvanPuffelen OK! Ich weiß nicht, was passiert ist, aber jetzt hat es funktioniert. Ich habe es vorher mit <= es hat nicht funktioniert, jetzt tut es. Danke vielmals! Aber dieser Fall funktioniert, während ich mit onSuccess arbeite. Ich habe vorher mit onComplete gearbeitet, weil ich eine "for" -Schleife machen möchte. Wie bei der ursprünglichen Post kann es auch mit onSuccess funktionieren? – WhiteNinja
'onSuccess' wird ausgelöst, wenn die Aufgabe abgeschlossen und erfolgreich abgeschlossen wurde. Eine Task, die ohne das Laden von Daten abgeschlossen wird, weil sie keine Daten laden musste, war ebenfalls erfolgreich. So wird 'onSuccess' auch dort funktionieren. –