从特定的userID Firebase回收器适配器获取密钥值

时间:2019-06-23 05:06:06

标签: java android firebase firebase-realtime-database firebaseui

我想获得如下图所示的键值。我正在使用Firebase Recycler适配器检索来自密钥的数据,但现在我想获取密钥值。

enter image description here

现在我正在使用的代码只检索this。

 private void setFirebaseRecyclerAdapterKarangan() {
        firebaseRecyclerOptionsKarangan = new FirebaseRecyclerOptions.Builder<UserAlphaKaranganClick>()
                .setQuery(databaseReference.child("userAlphaKaranganClick").child(userUid), UserAlphaKaranganClick.class)
                .build();

    firebaseRecyclerAdapterKarangan = new FirebaseRecyclerAdapter<UserAlphaKaranganClick, UserAlphaActivityLogKaranganViewHolder>(firebaseRecyclerOptionsKarangan) {
        @Override
        protected void onBindViewHolder(@NonNull final UserAlphaActivityLogKaranganViewHolder holder, final int position, @NonNull final UserAlphaKaranganClick model) {
            //We need to convert to become string since it is from long
            holder.getTextViewClick().setText(String.valueOf(model.getClick()));
            holder.getTextViewLike().setText(String.valueOf(model.getLike()));
        }

        @NonNull
        @Override
        public UserAlphaActivityLogKaranganViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.user_alpha_activity_log_karangan_item, viewGroup, false);
            return new UserAlphaActivityLogKaranganViewHolder(view);
        }
    };

    //Display
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
    linearLayoutManager.setStackFromEnd(true);
    linearLayoutManager.setReverseLayout(true);
    firebaseRecyclerAdapterKarangan.startListening();
    recyclerView2.setAdapter(firebaseRecyclerAdapterKarangan);
    recyclerView2.setLayoutManager(linearLayoutManager);
}

1 个答案:

答案 0 :(得分:1)

onBindViewHolder方法内添加以下内容:

String key = firebaseRecyclerAdapterKarangan.getRef(position).getKey();

getKey()将检索此快照的引用,该引用位于随机ID中。