前回は、Firebase Functions を使用し、Hello World 関数を作成しました。

今回は、Firebase Database からデータを取得する関数を Firebase Functions で作成し、ローカル環境サーバーで試します。

まずは、先日作成した functions フォルダの index.js を開きます。

firebase-adminをインポートします。

const admin = require("firebase-admin")

adminを初期化しましょう。

admin.initializeApp()

helloWorldgetBookへ変更します。

また、{}内を削除しましょう。

exports.getBook = functions.https.onRequest((request, response) => {})

adminfirestoreを使用します。

また、firestoredocには、単一データのパスを設定します。

image2

exports.getBook = functions.https.onRequest((request, response) => {
  admin.firestore().doc("Books/vQgOyHmkudLWhI0fpK1z")
})

getを設定し、then/catch で処理します。

then には、データを返すようにします。

また catch には、Console.log でエラーを表示するようにします。

exports.getBook = functions.https.onRequest((request, response) => {
  admin
    .firestore()
    .doc("Books/vQgOyHmkudLWhI0fpK1z")
    .get()
    .then(snapshot => {
      const data = snapshot.data()
      response.send(data)
    })
    .catch(err => console.log(err))
})

一通り完成したので、ローカル環境でサーバーを立ち上げます。

ターミナルの functions のディレクトリで、firebase serve --only functionsを実行します。

image3

サーバーが立ち上がりました。

functions[us-central1-getBook]:の後に書かれている URL をコピーします。

今開いているターミナルとは別のターミナルを開きます。

curl 〇〇を実行します。

〇〇は、先程コピーした URL を貼り付けましょう。

すると、

image4

データを取得することができました。

ブログ一覧