[Firebase Extensions] Resize Images

# Summit2019で発表されたFirebase Extensions

今年のFirebaseSummit2019で発表されたFirebase Extensions!
生放送を見る前にFirebase Consoleに追加されておりなんだこれ？！と心踊る追加内容でした:relaxed:

Firebase Extensionsの特徴として公式の言葉を借りると以下2つの特徴があります。

**ユースケースに合わせて拡張機能を構成する**
今回リリースされているのは9つの機能
[Translate Text](https://qiita.com/ryo2132/items/5e102136a1d7ad5d5e43)についてはすでに記事になってましたのでリンク付けさせていただきました:clap:
<img width="850" alt="スクリーンショット 2019-09-27 22.21.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/a2d2b098-cfa8-e4d3-04c5-4ca6b7f0ab6a.png">

**簡単にインストール**
左下のExtensionsをクリックして使いたい機能をinstallしたら使えるようになるイメージです
ボタンぽちぽちで画像のリサイズなどが可能になります。
<img width="1443" alt="スクリーンショット_2019-09-27_22_29_11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/f6574ea5-2cae-bd93-e7d1-cf94876b3fc2.png">

便利なCloud Functionsのメソッドが誰でも使えるようになった感じですかね？

# 今回はResize Imageについて

## Resize Imagesの設定を行いインストール

1.Resize Imagesの`インストール`をクリック
<img width="1173" alt="スクリーンショット 2019-09-27 22.32.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/de0b0835-41c8-3202-2ae9-072d2890cb64.png">

2.Cloud Functionsにこの関数がDeployされますよな確認画面
<img width="1320" alt="スクリーンショット 2019-09-27 21.04.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/8e3eb94e-4385-4e9c-032d-b078b830dd29.png">

以下全ての設定が終わった後のCloud Functionsの内容ですが、無事Deployされている模様
<img width="1153" alt="スクリーンショット 2019-09-27 22.36.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/506d3c72-2c5a-3a72-ca42-df42ec71f05a.png">

FunctionName: ext-storage-resize-images-generateResizedImage
Torigger: google.storage.object.finalize
このToriggerは新しいオブジェクトが作成された時点もしくは既存のオブジェクトが上書きされた時になります。

3.Resize Imagesの設定を行います。
**補足**
> Sized of resize images

こちらの設定で`200x200,500x500,700x700`とコンマで区切ることで複数指定が可能とのこと
こちらコメントでご指摘いただきました！
<img width="749" alt="スクリーンショット_2019-09-27_21_58_23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/f68695af-8de3-b13a-c8fe-db299719098e.png">

4.拡張機能がインストールされるのを待つ
基本的に数分です。
Cloud FunctionsにDeployやらなんやらやってるんでしょう

## Resize Imagesの動作確認

まだ何も入ってないStorageです
<img width="1170" alt="スクリーンショット 2019-09-27 22.48.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/a9e83205-08e3-07af-8bc1-f0ca2cc80e98.png">

`ファイルをアップロード`をクリックし`thumbnailImage.png`というファイルを選んでアップロード後リロードをかけた画面になります。
<img width="1171" alt="スクリーンショット 2019-09-27 22.49.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/2a6019cf-f708-5cac-0595-80b3227c96e2.png">

ResizeIconフォルダが作成され配下に`thumbnailImage_200x200.png`と命名された200*200にリサイズ済のファイルができてました。
<img width="1174" alt="スクリーンショット 2019-09-27 22.53.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75593/a8b262da-bc36-3b47-f86a-4b44599183bf.png">

気になる点は
`This bucket will store both the original and resized images.`
ResizeIconフォルダにオリジナルのアイコンは存在してなかった。。。:sweat_smile:
今回はコンソールから全てポチポチで済むように対応したためCodeベースで写真をアップロードする場合だとかは同じフォルダ内にオリジナルとリサイズ済のオリジナル画像が入るのかな？


## Resize Imagesについて感じたこと
・設定からリサイズまで全てConsoleで済ませることが可能
・指定したバケットに画像がアップロードできれば良いのでConsoleからでもアプリから写真を追加でもなんでもドンとこいな感じ
・設定楽！！！！


#さいごに
Firebase Extensionsに追加されてる機能はOSSでgithubでcodeの確認ができます。
[firebase/extensions](https://github.com/firebase/extensions)

近い未来、
みなさんが作ってる便利なCloud Functionsの関数がFirebase Consoleからボタンぽちぽちっとしたら設定できるようになるかもしれませんね！

[Delete User Data](https://qiita.com/giiiita/items/fdf81985a72689f87858)についても記事にしてみたのでよかったらどうぞ！