あのぞんブログ

Firebase Function 内から Cloud Messaging で通知を投げる最小コード

2020-01-08

Firebase Function から Cloud Messaging (FCM HTTP v1 API) を使って通知を送る方法のメモです。

firebase-admin の初期化設定する

アプリサーバーからの送信リクエストを作成する  |  Firebase (公式ドキュメント)

GOOGLE_APPLICATION_CREDENTIALS が必要なの?」とか「 ADC はどうやって承認するの?」とか「Authorization ヘッダにどの Token をセットするの?」とか少しややこしかった。

結論から言うと Firebase Function にデプロイする場合は何も考えなくていい。 以下のコードで暗黙的に検出される。

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
})

functions/index.js のコード例

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'
admin.initializeApp({
credential: admin.credential.applicationDefault(),
// databaseURL: 'https://hoge.firebaseio.com/',
})
export const api = functions.https.onRequest(async (req, res) => {
const message = {
topic: 'TOPIC_NAME',
notification: {
title: '通知デモです',
body: `サーバーは${new Date().getHours()}時です。`,
},
// priority: 'high',
}
admin.messaging().send(message)
})
view raw functions_index.js hosted with ❤ by GitHub

firestore などを使う場合は databaseURL オプションを設定する。


anozon JavaScript とアニメ好き Web エンジニア。Twitter