この記事は Firebase Advent Calendar 2019 4日目 の記事になります。
今回はCloud FunctionsからPush通知を送信する方法に書きます。
FCMのPush通知について
FCMには 「トークンに対してPush通知を送信する」 方法と、 「トピックに対してPush通知を送信する」 の2種類があります。
使い分けとしては
-
トークンに対してPush通知を送信する
- →ユーザー一人一人に割り当てられたトークンを使ってPush通知を送信する。ピンポイントで一人にPush通知を送信したりする場合に使用する
-
トピックに対してPush通知を送信する
- →ユーザーが購読しているTopicに対してPush通知を送信する。ある特定のグループに対してPush通知を送信する場合によく使われる。
自分の経験上トピックに対してPush通知を送信するパターンは実装したことがないので、基本的にトークンに対してPush通知を送信することが一般的なのかもしれません。
Tokenに対してPush通知を送信する
トークンの取得方法は公式ドキュメントを参照ください。
- Android → https://firebase.google.com/docs/cloud-messaging/android/client
- iOS → https://firebase.google.com/docs/cloud-messaging/ios/client
ここで保存されたトークンを使ってPush通知を送信します。
const payload = {
notification: {
title: "タイトル",
badge: "1",
sound: "default"
}
};
const option = {
priority: "high"
};
await admin.messaging().sendToDevice("トークン", payload, option);
これでPush通知が送信できます。
トピックに対して送信する
トピックの購読方法は公式ドキュメントを参照ください。
- Android → https://firebase.google.com/docs/cloud-messaging/android/topic-messaging
- iOS → https://firebase.google.com/docs/cloud-messaging/ios/topic-messaging
const payload = {
notification: {
title: "タイトル",
badge: "1",
sound: "default"
}
};
const option = {
priority: "high"
};
await admin.messaging().sendToTopic("トピック名", payload, option);
以上です。