Firebase Android基于密钥获取子级的值

Firebase Android基于密钥获取子级的值,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我在Firebase中有以下数据库结构: 我想检索键“name”(在本例中为“b”)的值。我知道钥匙-ku bWdgeYxYrdmzr67bJ。这不需要有一个监听器。我该怎么做 非常感谢您必须将listener添加到super of-K_bWdgeYxYrdmzr67bJ中,并从中获得可移植性。它会给你一个价值观,然后你就能得到你的价值 Iterable<DataSnapshot> dsChildData = ds.getChildren(); 必须使用arrayList或Lis

我在Firebase中有以下数据库结构:

我想检索键“name”(在本例中为“b”)的值。我知道钥匙
-ku bWdgeYxYrdmzr67bJ
。这不需要有一个监听器。我该怎么做


非常感谢

您必须将listener添加到super of-K_bWdgeYxYrdmzr67bJ中,并从中获得可移植性。它会给你一个价值观,然后你就能得到你的价值

Iterable<DataSnapshot> dsChildData = ds.getChildren();
必须使用arrayList或List来存储模型类的所有节点。

if(dataSnapshot.exists()){
 if (dataSnapshot.exists()) {
            HashMap<String, Object> hashmap = new HashMap<>();
                Iterator<DataSnapshot> friendsiterator = dataSnapshot.getChildren().iterator();
                while (friendsiterator.hasNext()) {

                    DataSnapshot bdaySnapShaot = friendsiterator.next();

                    if (bdaySnapShaot.getKey().equals("latitude")) {
                            hashmap.put("latitude", bdaySnapShaot.getValue().toString());
                        } else if (bdaySnapShaot.getKey().equals("longitutde")) {
                            hashmap.put("longitutde", bdaySnapShaot.getValue().toString());
                        } else if (bdaySnapShaot.getKey().equals("name")) {
                            hashmap.put("name", bdaySnapShaot.getValue().toString());
                        }


                }


            }
HashMap HashMap=新的HashMap(); 迭代器friendsiterator=dataSnapshot.getChildren().Iterator(); while(friendsiterator.hasNext()){ DataSnapshot bdaysnapshout=friendsiterator.next(); 如果(bdaySnapShaot.getKey().equals(“纬度”)){ put(“纬度”,bdaysnapshout.getValue().toString()); }else if(bdaySnapShaot.getKey().equals(“longitute”)){ put(“longitutte”,bdaysnapshout.getValue().toString()); }else if(bdaySnapShaot.getKey().equals(“name”)){ put(“name”,bdaysnapshout.getValue().toString()); } } }
这将100%适用于您。

ref.child("-K_bWdgeYxYrdmzr67bJ").child("name").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        try {
            if (snapshot.getValue() != null) {
                try {
                    Log.e("TAG", "" + snapshot.getValue()); // your name values you will get here
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("TAG", " it's null.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {
        Log.e("onCancelled", " cancelled");
    }
});

创建一个Arraylist类型的HashMap,就像Arraylist mBlockedFriendslist一样;并将hashmap对象添加到该列表中并访问该列表。如果我们需要使用不同的键获取多个条目,该怎么办?
ref.child("-K_bWdgeYxYrdmzr67bJ").child("name").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        try {
            if (snapshot.getValue() != null) {
                try {
                    Log.e("TAG", "" + snapshot.getValue()); // your name values you will get here
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("TAG", " it's null.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {
        Log.e("onCancelled", " cancelled");
    }
});
mDatabaseReport.getRef().addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot postSnapshot :dataSnapshot.getChildren()) {

                   TextView Push_Key = (TextView)findViewById(R.id.txt_points);
                    Push_Key.setText("" + postSnapshot.getKey());
                    }
                }
                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });