Android 如何在Logcat中获取Firebase数据库所选条目的密钥?

Android 如何在Logcat中获取Firebase数据库所选条目的密钥?,android,firebase-realtime-database,android-recyclerview,Android,Firebase Realtime Database,Android Recyclerview,我得到了所有的钥匙,当我点击cardview时,我怎样才能得到相应位置的钥匙?假设,如果我单击卡位置2,则只需要该位置键 这是我的密码: databaseReference = FirebaseDatabase.getInstance().getReference("News"); final String z = databaseReference.child(String.valueOf(homeModelList.get(position))).getKey(); To


我得到了所有的钥匙,当我点击cardview时,我怎样才能得到相应位置的钥匙?假设,如果我单击卡位置2,则只需要该位置键

这是我的密码:

 databaseReference = FirebaseDatabase.getInstance().getReference("News");
    final String z = databaseReference.child(String.valueOf(homeModelList.get(position))).getKey();

    Toast.makeText(context, z, Toast.LENGTH_SHORT).show();
    databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            Log.e("Position is ", String.valueOf(z));

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
我找不到各自位置的钥匙。我在logcat中得到的输出为0,1,2,表示适配器的位置


我怎样才能拿到那把钥匙。谢谢

您可以使用for循环迭代
datasnapshot
的子项以获取密钥

databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            Log.e("Position is ", String.valueOf(childSnapshot.getKey()));
        }

    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

我得到了所有的钥匙,当我点击cardview时,我怎样才能得到相应位置的钥匙?假设,如果我单击卡位置2,则只显示该位置键required@Zed您可以创建一个
ArrayList
,并将所有键添加到for循环中;然后调用
get()。。希望你的提问能达到这个目标