显示Firebase数据库(Android)中的数据

时间:2017-03-06 07:55:41

标签: android firebase firebase-realtime-database

这是我的Firebase数据库外观的示例

database

我想要做的是访问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等内部的数据会显示出来,但我想要做的是显示图片中的数据。有谁知道我在这里做错了什么?

0 个答案:

没有答案