Если вы посмотрите на код расширения «Изменить размер изображения», вы увидите, что облачная функция, лежащая в основе расширения, запускается событием onFinalize
, которое означает:
Когда новый объект (или новое поколение существующего объекта) успешно создается в корзине. Это включает в себя копирование или перезапись существующего объекта.
Таким образом, без перезаписи / восстановления существующих изображений расширение не будет запущено.
Однако Вы можете легко написать свою собственную облачную функцию, которая делает то же самое, но запускается, например, путем вызова определенного c URL ( HTTPS cloud Function ) или путем создания нового документа в временная коллекция Firestore ( фоновый запуск CF ).
Эта облачная функция будет выполнять следующие шаги:
- Получить все файлы вашего сегмента, см.
getFiles()
метод Google Cloud Storage Node.js Клиентский API. Этот метод возвращает объект GetFilesResponse
, который является массивом File
экземпляров. - Зацикливаясь по массиву, для каждого файла проверьте, имеет ли файл соответствующее измененное изображение в корзина (в зависимости от того, как вы настроили расширение, изображения с измененным размером могут находиться в указанной папке c)
- Если файл не имеет соответствующего изображения с измененным размером, выполните ту же бизнес-логи c облачной функции расширения для этого файла.
В зависимости от количества обрабатываемых изображений вам может потребоваться увеличить значение тайм-аута и / или выделенную память вашей облачной функции, см. https://firebase.google.com/docs/functions/manage-functions#set_timeout_and_memory_allocation