这是我的Firebase数据库外观的示例
我想要做的是访问pic1,pic2等内部的内容。但是我收到了一个错误,而且根本没有显示任何数据。
以下是我的代码的样子:
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()) {
n = n + 1;
while(alert.child("pic"+n).exists());
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();
}
}
如果我删除这行代码:
while(alert.child("pic"+n).exists());
Album1,2等内部的数据会显示出来,但我想要做的是显示图片中的数据。有谁知道我在这里做错了什么?