Я пытаюсь получить запрос нескольких значений из Firestore, я делаю это правильно? - PullRequest
1 голос
/ 25 мая 2019

Я использовал hashmap для получения данных из фрагмента данных Filter, которые хочет пользователь для отображения, и я хочу построить динамический запрос выборки Firestore, но я не уверен, что это правильный способ сделать это.

Я новичок в запросе в firestore, но я попытался настроить построение динамического запроса, сохранив переменные в запросе с помощью foreach, в коде объяснения я преобразую этот код

Query filterQuery= db.collection("Property").
 .whereEqualTo("noBathrooms", "5")
 .whereEqualTo("noRooms", "2");

к этому.

for(Map.Entry<String, Object> entry : list.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue().toString();
        filterQuery=propertyRef.whereEqualTo(key,value);
    }

здесь, где я настраиваю запрос

public void filterData(){

    Query filterQuery =null;
    for(Map.Entry<String, Object> entry : list.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue().toString();
        Log.i(key,value);
        filterQuery=propertyRef.whereEqualTo(key,value);
    }
    dataFetch(filterQuery,R.id.rentRV);
}

и вот где я нахожусь это

private void dataFetch(Query query,int rvView){

  FirestoreRecyclerOptions<Property> options = new 
  FirestoreRecyclerOptions.Builder<Property>()
        .setQuery(query, Property.class)
        .build();

  mAdapter = new DiscoverAdapter(options);
  RecyclerView recyclerView = root.findViewById(rvView);
  recyclerView.setHasFixedSize(true);
  recyclerView.setLayoutManager(new 
  LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,false));
  recyclerView.setAdapter(mAdapter);
  mAdapter.startListening();
  mAdapter.setOnItemClickListener((documentSnapshot, position) -> {
    Property property = documentSnapshot.toObject(Property.class);
    String id = documentSnapshot.getId();
    Bundle mBundle = new Bundle();
    mBundle.putString("id", id);
    Toast.makeText(getContext(), id, Toast.LENGTH_SHORT).show();

});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...