【发布时间】:2020-05-16 03:21:27
【问题描述】:
我有一个函数(不在活动内),它将图像上传到 Firebase 存储并返回 URL。 我的问题是,我需要等待 UploadTask 完成,否则它会返回一个空字符串。 .
public String pushRegisterImage(Bitmap image) {
StorageReference imagesRef = storage.getReferenceFromUrl(STORAGE_REF)
.child(FINDMYPET).child(IMAGES).child(String.valueOf(UUID.randomUUID()));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();
UploadTask uploadTask = imagesRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
imageUrl = null;
Log.e(LOG_TAG, "Image upload error: " + e);
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
imageUrl = taskSnapshot.getDownloadUrl().toString();
Log.v(LOG_TAG, "Image uploade sucess, url: " + imageUrl);
}
});
return imageUrl;
}
【问题讨论】:
标签: android task firebase-storage