Firestore 데이터베이스에 내 컬렉션이 있는지 확인하는 데 문제가 있습니다. 내가 중포 기지 실시간 데이터베이스 작업 때 은 내가 사용할 수도 : Cloud Firestore 컬렉션이 있는지 확인하는 방법은 무엇입니까? (querysnapshot)
if(databaseSnapshot.exists)
지금 경우 FireStore와 내가 같은 일을하고 싶어. 이미
if (documentSnapshots.size() < 0)
을 시도했지만 작동하지 않습니다.
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();
}
}
});
}
함수 : 여기서 현재 코드 setNothingToShow(); 컬렉션이 비어 있거나 존재하지 않으면 실제로 실행하고 싶은 것이 있습니다. 알려주세요. 당신이 Task<QuerySnapshot>
에서 QuerySnapshot
을 얻기를 위해 QuerySnapshot
전화 task.result을 처리하는 동안 덕분에, D.
if (documentSnapshots.size() <0)'이 절대로 안됩니다. if (documentSnapshots.size() == 0)'또는'if (documentSnapshots.size()> 0)'이어야합니다. –
@FrankvanPuffelen OK! 나는 무슨 일이 있었는지 모르지만 지금은 효과가있다. <이전에는 시도한 바 없었지만, 지금은 그랬습니다. 고마워요! 하지만이 경우는 onSuccess로 작업하는 동안 작동합니다. 나는 "for"루프를 만들고 싶기 때문에 onComplete를 사용하기 전에 작업했습니다. 내가 원래 게시물에서했던 것처럼, 그것도 onSuccess와 함께 작동 할 수 있습니까? – WhiteNinja
'onSuccess'는 작업이 완료되고 성공하면 실행됩니다. 모든 데이터를로드하지 않고 완료하는 태스크는 데이터를로드 할 필요가 없기 때문에 성공했습니다. 그래서'onSuccess'도 거기에서 작동 할 것입니다. –