如何使用Iterator在Firebase中检索密钥

时间:2017-01-16 10:23:26

标签: android firebase firebase-realtime-database

enter image description here

如何使用Iterator获取此json结构中的键? 如果用户是 Harry Anderson ,那么逻辑将是,我想从 person0 中搜索到 person6 的值,如果找到该值我希望得到它的密钥,在这种情况下是 -KaSeO5n2xCl2sEnDpSi 。我不知道这是否可以通过Iterator实现,但如果还有其他方法可以实现,请建议。感谢。

2 个答案:

答案 0 :(得分:2)

 ref.child("chat/chat-participants").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                ArrayList<String> keyList = new ArrayList<>();
                for (DataSnapshot child : dataSnapshot.getChildren()) {
                    Log.e("!_@@_Key::>", child.getKey());
                        keyList.add( child.getKey());
                }
              // your all keys are store in KeyList ArrayList
            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
                Log.e("!_@@@_ERROR_>>", "onCancelled", firebaseError.toException());
            }
        });

答案 1 :(得分:0)

你可以尝试

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference chatRef = database.getReference("chat").child("chat-participants");

chatRef.addListenerForSingleValueEvent(
                    new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
    //do stuff iteration
    }});

我认为没有明确的方法来实现它