Я создаю приложение Flutter, для которого я использую одно и то же изображение другого размера.Из соображений производительности я бы хотел получить одно и то же изображение в разных размерах в зависимости от размера дисплея на клиенте.
Для этого я бы создал систему, позволяющую генерировать миниатюры для каждого загруженного изображения на базе FireBase.хранилище с помощью облачной функции, а затем использовать эти эскизы с клиента.
При загрузке пользователь получит общедоступный URL-адрес исходного изображения и может просто добавить желаемый размер к URL-адресу, чтобы получить определенную версию эскиза (пример. https://google.api.com/mybucket/myprofilepicture.png -> https://google.api.com/mybucket/myprofilepicture@2x.png)
https://google.api.com/mybucket/myprofilepicture.png
https://google.api.com/mybucket/myprofilepicture@2x.png
Однако облачное хранилище Firebase использует механизм защиты токенов (например, https://google.api.com/mybucket/myprofilepicture.png?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e) дополнительная информация здесь создание общедоступных URL-адресов вновь загруженныхнепредсказуемые от клиента файлы.
https://google.api.com/mybucket/myprofilepicture.png?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e
Официальный пример облачной функции генерации миниатюр решает эту проблему, сохраняя сгенерированные URL-адреса в облачном хранилище и, следовательно, требует от клиента другого вызова для получения доступных миниатюр.https://github.com/firebase/functions-samples/tree/master/generate-thumbnail
Есть ли способ создания предсказуемых URL-адресов для миниатюр, чтобы избежать затрат на их хранение в отдельной БД?