我想获得我在网页Firebase控制台中手动上传的图片列表。有没有办法在不使用FirebaseRecyclerAdapter的情况下获取所有文件的列表?
答案 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();
}
});