Cloud FunctionのonCall関数をNode.jsから呼ぶ方法




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の情報を書いていきます。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です