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 オプションを設定する。
