如何使用从Firebase存储中检索的图像填充Gridview

问题描述 投票:0回答:1

[我在发布此帖子之前已经审查了其他类似的帖子,我的是不同的]我目前正在从Firestore数据库中检索下载网址的列表,然后尝试从Firebase存储中下载这些图像以在gridview中显示它们。

到目前为止,这是我的代码:

final Query chatRoomMsgs = db.collection("chatrooms").document(chatRoomID).collection("Messages").whereEqualTo("sentby", firebaseAuth.getUid());
    chatRoomMsgs.get()
            .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                @Override
                public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    ArrayList<String> sentPicsURLS = new ArrayList<String>();

                    for(QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots){

                        for(int i = 0; i < queryDocumentSnapshots.size(); i++) {
                            sentPicsURLS.add(documentSnapshot.get("image").toString());

                            if(i == (queryDocumentSnapshots.size()-1)){
                                //now download the images and place them into the proper view
                                for(int z = 0; z < sentPicsURLS.size(); z++){


                                }

                            }
                        }

                    }
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                }
            });

这是应将图像拉入并推入gridview的位置:

for(int z = 0; z < sentPicsURLS.size(); z++){
         //right here    
}

但是我在创建可以处理此问题的适配器时遇到了麻烦。我在活动中有一个有效的gridview,并且我的布局文件包含一个带ID的imageview。

final ArrayAdapter arrayAdapter = new ArrayAdapter(Chatroom.this, R.layout.chatroom_sent_images,R.id.sent_iv);
    sentPics.setAdapter(arrayAdapter);
    sentPics.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            //empty for now
        }
    });

我缺少的部分(似乎是),我实际上在其中循环通过sentPicsURLS,然后将它们添加到适配器中……也许在arrayAdapter.addAll(sentPicsURLS); for loop内有类似//right here的东西?

现在,网格视图显示为空,甚至R.layout.chatroom_sent_images中都没有默认图像视图。我感觉我是如此亲密,我想念什么?谢谢!

编辑

这是我的聊天室数据库结构,每个聊天室和聊天室消息的结构都相同。enter image description here

我在发布此文章之前已经审查了其他类似的帖子,我的情况有所不同,我目前正在从Firestore数据库中检索下载网址的列表,然后尝试从我的网站下载这些图片...

android google-cloud-firestore firebase-storage android-gridview
1个回答
0
投票
正如您在屏幕截图中所看到的,您的文档仅包含一个image。因此,要解决此问题,就不需要额外的内部for循环。要创建这些图像的列表,请使用以下代码行:
© www.soinside.com 2019 - 2024. All rights reserved.