Как получить URL-адрес загрузки эскиза после завершения расширения firebase resize images
Недавно представленное расширение Firebase "Изменение размера изображения" создает миниатюру после загрузки изображения в корзину.
Как мне получить URL-адрес загрузки изображения этого эскиза после завершения расширения?
final StorageReference storageRef =
FirebaseStorage.instance.ref().child(fileName);
final StorageUploadTask uploadTask = storageRef.putFile(
File(path),
);
final StorageTaskSnapshot downloadUrl = (await uploadTask.onComplete);
final String url = (await downloadUrl.ref.getDownloadURL()); //This will give me the download url of file before resize
// ??How do I the download url of resized image that gets stored in fileName/thumbnails folder
1 ответ
Когда вы загружаете файл изображения на указанный вами Cloud Storage bucket
, это расширение:
- Создает изображение с измененным размером с указанными вами размерами.
- Сохраняет изображение с измененным размером в том же сегменте хранилища, что и исходное загруженное изображение.
- Называет изображение с измененным размером, используя то же имя, что и исходное загруженное изображение, но с суффиксом с указанными вами шириной и высотой.
Например, если вы указываете здесь путь превью и загружаете изображение в /images/original.jpg, то изображение с измененным размером сохраняется в /images/thumbs/original_200x200.jpg
Таким образом, URL-адрес вашего файла будет-
String name = url.substring(url.lastIndexOf("/")+1,url.indexOf("."));
String urlStr = "thumbnails/"+name+"_"+width+"x"+height+url.substring(url.indexOf("."),url.length());
storageRef.child(url.replace(name,urlStr)).getDownloadUrl()
.addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
}})