I want to reduce reading from FireStore. if, when a new data is added, it should only fetch that data. I don't want it to read the whole database again. I think this would be unnecessary and costly. I tried the code below but it doesn't work, it doesn't pull any data
query.get(CACHE).addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
boolean isEmpty = task.getResult().isEmpty();
if (isEmpty) {
query.get(SERVER).addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (QueryDocumentSnapshot documentSnapshot : task.getResult()) {
Item item= documentSnapshot.toObject(Item.class);
items.add(item);
adapter.notifyDataSetChanged();
}
}
});
}
}
}
});
And when i try other method, reads data in memory when offline but reloads all database when online. thank you in advance for any of suggestions.
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (QueryDocumentSnapshot documentSnapshot : task.getResult()) {
Item blogPost = doc.getDocument().toObject(Item.class);
items.add(blogPost);
mAdapter.notifyDataSetChanged();
}
}
});