Cloud Functionの中で特定の画像のURLを取得したかったのだが、かなり手こずった。
忘れないようにメモしておく。
1.getDownloadURLを使用してURLを取得しようとする
→Cloud Functionの中からはgetDownloadURLは使えない。
理由↓
https://firebase.google.com/docs/storage/web/download-files?hl=ja
iOSアプリからはこのgetDownloadURLが使えていたし、Cloud Functionの中でもこれで取得したかったが、
どうやらNode.jsではこれは使えないらしい。
Javascriptのクライアントにはあるが、Node.jsにはない。
どこかに公式の表があったが忘れてしまった。
とにかくNode.jsでは使えない。
https://firebase.google.com/docs/storage/admin/start?hl=ja
2.署名付きのURLを取得しようとする
→よくわかんないけどエラーでできなかった
(参考URL)
https://qiita.com/nobu17/items/6ef14d5fd0355e90f5cf
3.直接URLを記述する
→セキュリティルールの壁があるけどそれを超えれば表示できる
https://firebasestorage.googleapis.com/v0/b/バケット名/o/パス名?alt=media
↓参考
https://qiita.com/koinori/items/f8f534598fe8e1c40c7e
↓実際のURL例
https://firebasestorage.googleapis.com/v0/b/playbox-53558.appspot.com/o/thumbnail.jpg?alt=media
ここでのパス名の中に/を入れるとだめなので注意。
encodeURIComponent(パス名)にするといいらしい。
結果として3番で行くことにした。
2番目の証明書付URLでもできそうだけど1週間で見れなくなるとか色々書いてあるので難しそう。
---参考になったURL
https://firebase.google.com/docs/storage/admin/start?hl=ja
↓ここの「Web」っていう項目はCloudFunctionの中では使えない。
https://firebase.google.com/docs/storage/web/create-reference?hl=ja