Cloud FunctionでのAPIの実装方法
Cloud Functionでは基本的にonRequestとonCallを使ったAPIの実装ができます。
onRequestは認証機能がないので独自に実装しないといけないですがonCallはCloud Functionの認証機能を使うので独自実装する必要がありません。
基本的に認証の必要なAPIの実装にはonCallを使えばいいかと思います。
onCall APIの呼び出し方
テストやWEBブラウザから呼ぶ場合の実装について解説します。
firebaseモジュールのインストール
npmモジュールで簡単にインストールできます。バージョンはv5.5.0以上じゃないと対応していないので気をつけてください。
あとfirebase-functionsモジュールもありますがこのモジュールからはonCallを呼ぶための関数は準備されていません。
$ npm install firebase
onCall APIを呼ぶ方法
呼び方は簡単でfirebaseを初期化してからサインインしてhttpsCallable(‘FunctionName’)で関数名を指定するだけです。
初期化は最低限、apiKeyとprojectIdを設定して、サインインはアノニマスログインでも大丈夫です。
結果はPromiseオブジェクトが返ってくるのでthen()かasync/awaitで結果を受け取ることができます。
import firebase from 'firebase'; firebase.initializeApp({ apiKey: '### FIREBASE API KEY ###', authDomain: '### FIREBASE AUTH DOMAIN ###', projectId: '### CLOUD FUNCTIONS PROJECT ID ###' databaseURL: 'https://### YOUR DATABASE NAME ###.firebaseio.com', }); await signIn(); const func = firebase.functions().httpsCallable('FunctionName'); func({key: 'value'}).then(function(result) { // 何か処理 }); const signIn = async function() { await firebaseModule.auth().signInAnonymously(); }
まとめ
Cloud FunctionはAWSで言う所のLambdaと同じでGCPのFaaSです。
サーバレスは今のトレンドなのでしっかり押さえておきたい技術なので使うことをお勧めします。
またCloud FunctionはFirebaseとの連携がどんどん強化されていていろんなことができるようになっています。
例えばFirestoreにデータが書き込まれたことをトリガーに呼び出したり、Firebase Analyticsからのイベントを受け取ったり、Cloud Schedulerから定期実行できたりといろんなことができます。
実装も保守も楽なのでちょっとしたサービスのAPIにまずは使って見るといいと思います。今後もCloud Functionの情報を書いていきます。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す