在代码中,您可以将storageRef.downloadURL()
放在以下位置之一:
onComplete
回调函数中:当您上传文件完成后,Firebase Storage将调用onComplete
回调函数。您可以在该回调函数中使用storageRef.downloadURL()
来获取下载URL。以下是一个示例:storageRef.putFile(fileUri)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
// 文件上传成功
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Uri uri) {
// 在这里使用下载URL
String downloadUrl = uri.toString();
// ...
}
});
} else {
// 文件上传失败
// ...
}
}
});
addOnSuccessListener
回调函数中:当您上传文件成功后,Firebase Storage将调用addOnSuccessListener
回调函数。您可以在该回调函数中使用storageRef.downloadURL()
来获取下载URL。以下是一个示例:storageRef.putFile(fileUri)
.addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// 文件上传成功
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Uri uri) {
// 在这里使用下载URL
String downloadUrl = uri.toString();
// ...
}
});
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// 文件上传失败
// ...
}
});
请注意,storageRef.getDownloadUrl()
是一个异步操作,因此您需要在回调函数中处理下载URL。另外,addOnSuccessListener
和addOnCompleteListener
以及其他类似的回调函数可以根据您的需求选择使用哪一个。