2020-01-08
Firebase Function から Cloud Messaging (FCM HTTP v1 API) を使って通知を送る方法のメモです。
firebase-admin
の初期化設定する
アプリサーバーからの送信リクエストを作成する | Firebase
https://firebase.google.com/docs/cloud-messaging/send-message?hl=ja「GOOGLE_APPLICATION_CREDENTIALS
が必要なの?」とか「 ADC はどうやって承認するの?」とか「Authorization ヘッダにどの Token をセットするの?」とか少しややこしかった。
結論から言うと Firebase Function にデプロイする場合は何も考えなくていい。 以下のコードで暗黙的に検出される。
admin.initializeApp({
credential: admin.credential.applicationDefault(),
})
functions/index.js のコード例
import*asfunctionsfrom'firebase-functions' | |
import*asadminfrom'firebase-admin' | |
admin.initializeApp({ | |
credential: admin.credential.applicationDefault(), | |
// databaseURL: 'https://hoge.firebaseio.com/', | |
}) | |
exportconstapi=functions.https.onRequest(async(req,res)=>{ | |
constmessage={ | |
topic: 'TOPIC_NAME', | |
notification: { | |
title: '通知デモです', | |
body: `サーバーは${new Date().getHours()}時です。`, | |
}, | |
// priority: 'high', | |
} | |
admin.messaging().send(message) | |
}) |
firestore などを使う場合は databaseURL
オプションを設定する。