我正在尝试从Firestore提取多个值查询,我这样做对吗?

时间:2019-05-24 23:19:54

标签: android google-cloud-firestore

我使用哈希图从用户想要的过滤数据片段中获取数据 显示,并且我想建立一个动态的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();

});
}

0 个答案:

没有答案