https://dev.to/jgs/firebase-functions--nodejs-8--23lk からクロスポストです。
tldr
-
firebase-tools
をアップグレードする -
functions/package.json
に"engines": { "node": "8" }
を追加する firebase deploy
経緯
https://cloud.google.com/functions/docs/concepts/nodejs-8-runtime でしれっと(?) Cloud Functions で Node.js 8 が使えることが書いてあって(あと Python)小躍りしながら試しました。
じゃあ Firebase Functions でも使えるんじゃね...?と調べてみても、全く情報が出てきませんでした。ウェブのコンソールからランタイムを変更できる、と書いてる記事もあったのですが自分のプロジェクトにはそういう項目はなく...。
firebase-tools のリポジトリを runtime
で検索すると対応しているっぽい雰囲気がありました。しばらくコード追ったりした後に、最初に気付けばよかったんですが、リリースノートにちゃんと書いてありました。
まずはちゃんとリリースノートを読もうな!
余談
しばらく見ない間に TypeScript にもオフィシャルに対応していて firebase init
で対話的にプロジェクトを作成する際に TS でスキャッフォルドを作ってくれるのでお手軽に型を付けられるようになっていた。かなりマトモな環境の Node.js 8 で動かすものを TS で書けるとなるとだいぶ選択肢に入ってくるのでは...?というカンジがした。まだ beta っぽいけどガンバッテほしい...!