TypeScriptでCloud Functionsをやるときに毎回同じようなことを書いていたので、テンプレートを作りました。※Firebaseコマンドで Firebase Functions をやるときは JavaScriptかTypeScriptか選択することができます。
リポジトリ
オススメの設定や何か問題などあればIssueやプルリクエストをいただけると嬉しいです
下準備
configを変更します。 runtimeの違いによって動作しない機能もございますので 、詳しくはドキュメントをご参照ください。
package.json
"config": {
"function_name": "helloWorld",
"region": "リージョンをいれる 例:asia-northeast1",
"gcp_project": "GCPのプロジェクトIDをいれる",
"runtime": "ランタイムを指定 例:nodejs8"
},
Lint
$ npm run lint
Build
functions/src/
に Node.js のプロジェクトがビルドされます
$ npm run build
Test
$ npm install -g mocha // mochaがインストールされていればスキップ
$ npm run test
Hello function
✓ Get 200 response
1 passing (31ms)
Deploy
Cloud Functionsにデプロイします
$ npm run deploy --prefix functions/src/
リクエスト
デプロイ後に表示されるhttpsTriggerURLにリクエストしHello World
が表示されればデプロイに成功しています。
$ curl https://asia-northeast1-foo.cloudfunctions.net/helloWorld
$ Hello World