Firebase Android基于密钥获取子级的值
我在Firebase中有以下数据库结构: 我想检索键“name”(在本例中为“b”)的值。我知道钥匙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
-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) {
}
});