访问子节点
问题描述:
这是我的数据库看起来如何访问子节点
mainAlbum
Album1
id: ""
image_name: ""
image_path: ""
pic1
id: ""
image_name: ""
image_path: ""
pic2
id: ""
image_name: ""
image_path: ""
我能Album1下访问IMAGE_NAME和IMAGE_PATH,但我不知道如何访问图一和图二。有超过1张专辑,我可以访问它们,每张专辑都有很多图片
这是我用来访问数据库的代码。
private void getData(){
firebaseDatabaseInstance = FirebaseDatabase.getInstance();
// get reference to 'users' node
booksInstance = firebaseDatabaseInstance.getReference("mainAlbum");
booksInstance.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
setData(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.w(TAG, "Failed to read value.", error.toException());
}
});
}
List<List<String>> booksInfo;
List<String> temp;
private void setData(DataSnapshot dataSnapshot){
booksInfo = new ArrayList<>();
for (DataSnapshot alert: dataSnapshot.getChildren()) {
temp = new ArrayList<>();
Log.d("image_name", (String) alert.child("image_name").getValue());
Log.d("id", (String) alert.child("id").getValue());
Log.d("image_path", (String) alert.child("image_path").getValue());
temp.add((String) alert.child("image_name").getValue());
temp.add((String) alert.child("id").getValue());
temp.add((String) alert.child("image_path").getValue());
booksInfo.add(temp);
}
if(booksInfo.size() > 0){
setGridView();
}else{
Toast.makeText(this, "No data Found.", Toast.LENGTH_SHORT).show();
}
}
答
通过查看您的firebase数据库结构,从相册访问图片只能通过单独访问每张图片来完成。
如果您要访问的图片作为一个列表,你应该让你的结构是怎样的
mainAlbum
Album1
id: ""
image_name: ""
image_path: ""
pics
pic1
id: ""
image_name: ""
image_path: ""
pic2
id: ""
image_name: ""
image_path: ""
,然后你可以通过获取“图片”子
更好地访问图片你归你专辑 – uguboz
你可以使用一个简单的while循环,像'while(alert.child(“pic”+ n).exists())'并且n从1开始,每次递增 – Linxy
@Linxy我在哪里放这行代码以*问图片? – Khallad