【发布时间】:2021-06-21 06:02:12
【问题描述】:
我正在开发一个应用程序,我正在将一张一张图片添加到 firebaseFirestore 并获取该图片的下载 url 并将该 url 保存到一个列表中,但是我的 for 循环没有正确循环它有时会运行 1 索引然后 0 索引和这种类型的错误方式最终会运行所有索引,但不是以一种方式运行。 这里最终打印的值然后它的值是某个时间 1 然后 0 这种类型它运行。请帮忙。我的代码是
for (int i = 0; i < mViewModel.getProductImages().getValue().size(); i++){
Uri uri1 = Uri.fromFile(new File(mViewModel.getProductImages().getValue().get(i)));
String fileExt = MimeTypeMap.getFileExtensionFromUrl(uri1.toString());
StorageReference mStorageReference = FirebaseStorage.getInstance().getReference("Product Images").child(FirebaseAuth.getInstance().getCurrentUser().getUid())
.child(productId).child("Image" + i + "." + fileExt);
int finalI = i;
mStorageReference.putFile(uri1).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()){
mStorageReference.getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()){
Log.d("TAG", finalI + " " + task.getResult().toString());
imagesAdded.add(finalI, task.getResult().toString());
}
}
});
}
}
});
}`
【问题讨论】:
标签: java android firebase loops for-loop