Чтобы получить URL-адрес для загрузки, вам нужно использовать addOnSuccessListener
, как показано в следующих строках кода:
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String url = uri.toString();
//Do what you need to do with url
}
});
}
});
Как и в замечаниях к выпуску Firebase в мае23, 2018 отмечается, что:
Облачное хранилище версии 16.0.1
Удалены устаревшие методы StorageMetadata.getDownloadUrl () и UploadTask.TaskSnapshot.getDownloadUrl ().Чтобы получить текущий URL для загрузки, используйте StorageReference.getDownloadUr ().
Так что теперь при вызове getDownloadUrl () для StorageReference объекта он возвращает Task
объект и не объект Uri больше.
Пожалуйста, помните, что ни прослушиватель успеха, ни прослушиватель ошибок (если вы собираетесь его использовать) не будут вызваны, если ваше устройство не можетдобраться до бэкэнда Firebase Storage.Прослушиватели успеха / неудач будут вызываться только после того, как данные будут приняты или отклонены серверами Firebase.