나는 recylerviews 및 Firebase로 작업하고 있습니다. FirebaseUI를 사용하여 데이터를 내 recyclerview에 채 웁니다. 내 조각 내에서 두 개의 쿼리를 사용할 수 있는지 궁금합니다. 실행해야하는 쿼리는 데이터베이스의 노드가 존재하는지 여부에 따라 달라야합니다.Android - recyclerview (Firebase)에 대한 여러 검색어
데이터베이스 구조는 다음 주소 아이가 사용자에 존재
경우 노드, 나의 조각은 사용자 노드를 조회해야한다. 그렇지 않으면 라우트 노드를 조회해야합니다. 이것이 가능한가?
기본적으로 여기에 내가 만드는 중이라서 나에게 모든 마커를 가져옵니다의 요청에 의한 :
Query keyQuery = FirebaseDatabase.getInstance().getReference(sharedPreferences.getString("school", null)).child("markers");
recyclerView = (RecyclerView) rootView.findViewById(R.id.markerRecyclerview);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
FirebaseRecyclerOptions<FirebaseMarker> options = new FirebaseRecyclerOptions.Builder<FirebaseMarker>()
.setQuery(keyQuery, FirebaseMarker.class)
.build();
내 onBindViewHolder 방법 내부는 내가 recyclerview의 각 항목에 온 클릭이있다. 항목을 클릭하면 사용자가 새 활동으로 이동합니다. 이 새로운 활동에서 사용자는 users/userId 노드 아래에 주소 노드를 추가하는 버튼을 누를 수 있습니다. 그 버튼을 누르는 것은 사용자가 마커를 선택했다는 것을 의미합니다. 그래서 마커 정보를 데이터베이스의 모든 마커가 아닌 recyclerview에만 표시하려고합니다.
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(),MainActivity.class);
intent.putExtra("databaseKey", key);
startActivity(intent);
}
});
것은 그 생각하십시오 주소 및 시간 노드가 사용자 노드에 삽입 된 경우, 그냥 쉽게 만들 것이다,이를 조회 할 수 있습니다.
그래서 현재 사용자의 노드 아래에'address'가 있는지에 따라 다른 쿼리를'FirebaseRecyclerAdapter'에 붙이시겠습니까? 이것이 일어날 수있는 몇 가지 예제 코드를 제공 할 수 있습니까? 다른'FirebaseRecyclerOptions' 인스턴스로 어댑터를 초기화 할 수 있어야합니다. – Grimthorr
내 게시물을 업데이트했습니다. 그것은 의미가 있습니까? – JDoe
가능하다고 생각하십니까? – JDoe