【发布时间】:2020-05-22 05:45:30
【问题描述】:
我正在尝试列出从我的 Firebase 存储到应用程序的所有图像。我知道将图像添加到存储中并将链接添加到数据库的方法,但我的客户不知道这一点。因此,当我发现 Firebase 当前允许列出文件夹中的所有图像时。过去两天我一直在做这个,但没有运气。
我的活动代码:
public class Events_and_Participations extends AppCompatActivity {
StorageReference reference;
RecyclerView recyclerView;
Images_Adapter adapter;
List<String> items = new ArrayList<>();
FirebaseAuth auth;
Button button;
FirebaseUser user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_events_and_participations);
Objects.requireNonNull(getSupportActionBar()).setTitle(R.string.item_title_4);
button = findViewById(R.id.login);
auth = FirebaseAuth.getInstance();
user = FirebaseAuth.getInstance().getCurrentUser();
if (user == null){
button.setVisibility(View.VISIBLE);
}else {
button.setVisibility(View.INVISIBLE);
}
reference = FirebaseStorage.getInstance().getReference("images");
button.setOnClickListener(v -> auth.signInAnonymously().addOnCompleteListener(task -> {
if (task.isSuccessful()){
Toast.makeText(this, "Loading..!!", Toast.LENGTH_SHORT).show();
}
}));
if (user != null){
reference.listAll()
.addOnSuccessListener(listResult -> {
for (StorageReference item : listResult.getItems()) {
items.add(item.getDownloadUrl().toString());
}
})
.addOnFailureListener(e -> Toast.makeText(Events_and_Participations.this, e.getMessage(), Toast.LENGTH_SHORT).show());
}
adapter = new Images_Adapter(items);
recyclerView = findViewById(R.id.events_photos);
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
}
}
我的存储规则:
rules_version = '2';
service firebase.storage {
match /b/sahrudhaya-foundation.appspot.com/o {
match /{allPaths=**} {
allow read, write : if request.auth != null
}
}
}
【问题讨论】:
-
您在调用reference.list(10)之前是否进行了身份验证?
-
是的,我做到了……!!它只是向我显示一个空屏幕,没有别的,甚至没有错误
-
我发现了问题,当 .getDownloadUrl();被称为它不返回字符串 url 而是返回一个包名称,如 com.google.package.gms.task@z1562646 blah.. blah.. 现在帮我解决这个问题。
标签: java android firebase firebase-storage