获取firebase存储中的图像名称

时间:2017-09-27 09:08:01

标签: android firebase firebase-storage

现在我正在通过名字从firebase下载图片。

 storageRef.child("NAME OF your IMAGE").getBytes(Long.MAX_VALUE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
                @Override
                public void onSuccess(byte[] bytes) {
                    // Use the bytes to display the image
                    Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                    imageView.setImageBitmap(bitmap);
                } 

是否可以将存储在firebase存储中的图像的所有名称都列入列表。

1 个答案:

答案 0 :(得分:1)

不,你不能。你可以做什么是在你的Firebase数据库中创建一个名为imageNames的新部分,每次你向Firebase存储添加一个图像时,在这个新节点下添加相应的图像名称,如下所示:

Firebase-root
   |
   --- imageNames
           |
           --- imageId1: ImaneName1
           |
           --- imageId2: ImaneName2

要获取所有这些名称,只需在此imageNames节点上附加一个侦听器,并从dataSnapshot对象中获取所有这些名称,如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference imageNamesRef = rootRef.child("imageNames");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String imageName = ds.getValue(String.class);
            Log.d("TAG", imageName);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
imageNamesRef.addListenerForSingleValueEvent(eventListener);