【发布时间】:2021-11-23 23:12:27
【问题描述】:
我想减少从 FireStore 的读取。如果在添加新数据时,它应该只获取该数据。我不希望它再次读取整个数据库。我认为这将是不必要且昂贵的。 我尝试了下面的代码,但它不起作用,它没有提取任何数据
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();
}
}
});
}
}
}
});
当我尝试其他方法时,离线时读取内存中的数据,但在线时重新加载所有数据库。 提前感谢您的任何建议。
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();
}
}
});
【问题讨论】:
标签: java firebase google-cloud-firestore