从Firebase Store

时间:2018-04-09 06:14:03

标签: android firebase android-recyclerview google-cloud-firestore firebase-storage

我想获得我在网页Firebase控制台中手动上传的图片列表。有没有办法在不使用FirebaseRecyclerAdapter的情况下获取所有文件的列表?

2 个答案:

答案 0 :(得分:1)

没有现有方法可以提取您在Firestore中保存的文件名列表。相反,您必须使用一些解决方法来手动创建列表。例如,在Firebase数据库中维护文件和URL列表。

一种可能的解决方案是使用云功能编写触发器,聆听对Firebase存储所做的更改。(这次您直接通过控制台进行上传,您必须编写触发器并将其托管在云端功能中) 。在附件列表中插入/删除/修改后,更新firebase数据库中的虚拟文件条目。当您尝试提取文件/ URL信息列表时,请从数据库中检索它们,而不是从存储中检索它们。

您可以参考以下文档获取更多信息: https://firebase.google.com/docs/functions/gcp-storage-events?hl=zh-cn

How to get a list of all files in Cloud Storage in a Firebase app?

答案 1 :(得分:0)

没有任何功能可以直接从firebase存储中获取您的图像,所以首先,您必须创建一个数据库,并在其中添加一个Imageurl字段或类似的字段,然后从URL中获取该数据或图像使用查询。对于查询构建,我已经提到了下面使用的代码。

 mDatabase = FirebaseDatabase.getInstance().getReference();
    Query query = mDatabase.child("DatabaseName").orderByChild("ImageUrl");
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                // dataSnapshot is the "issue" node with all children with id 0
                for (DataSnapshot issue : dataSnapshot.getChildren()) {
                    // do something with the individual "issues"
                    try {
                        imgeListModel.add(issue.getValue(ImageListModel.class));
                        Log.e("Get Data", issue.getValue(ImageListModel.class).toString());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
           databaseError.toException();
        }
    });