У меня есть канал, как изображение в моем приложении. Я получаю список некоторых документов из коллекции Firetsore, и я заполняю их в списке, а затем использую его в представлении переработчика, чтобы показать детали пользователя.
Когда нажата лента, я хочу показать данные ditrict3 и district4. Как показано ниже:
collectionRef = FirebaseFirestore.getInstance().collection("male");
collectionRef.whereIn("district", Arrays.asList("district3", "district4"))
.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<FilterDetails> filterDetailsList = new ArrayList<>();
for (DocumentSnapshot document : task.getResult()) {
FilterDetails filterDetails = document.toObject(FilterDetails.class);
filterDetailsList.add(filterDetails);
getParentActivity().hideLoading();
}
feedItemAdapter.updateData(filterDetailsList);
}
}
});
Когда будет щелкнуть округ 1, я поменяю гдеEqualTo ("район", "район1") и для другого выбора я изменю.
Пользователь может изменять это чаще и если я сделаю один раз, то это будет стоить мне очень дорого. Но если я буду использовать снимок в реальном времени, данные будут считываться снова и снова, если другие пользователи изменят свою информацию. Решения, которые я подумал: 1) Чтобы получить все данные, прежде чем пункт, где и сделать районную фильтрацию на стороне клиента (приложение). Но в этом, если в каждом штате 2000 пользователей. Я должен был бы загрузить столько данных. 2) Сделать одноразовую выборку для любых пользовательских кликов, а затем показать им тот же список. Я сделаю отдельный список для всех выборок.
Я действительно смущен этим. Любое понимание будет полезно.