この記事はデベロッパー アドボケート、Jen Person による The Firebase Blog の記事 "Firebase Cloud Messaging v1 Now Available from the Admin SDK" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Firebase Cloud Messaging (FCM) は、日々数十億件のメッセージを送り続けています。そのことを考えると、いつも驚いてしまいます。FCM は、iOS、Android、ウェブのデベロッパーが通知やデータ メッセージをクライアントに送る際に欠かせないものになっています。先日、FCM がアップデートされ、セキュリティが向上して新機能が追加されました。さらに、Node.js、Python、Java、Go の Firebase Admin SDK から新しい FCM にアクセスできるようになっています。

最新版の FCM である FCM v1 には、1 つのリクエストをプラットフォームごとにオーバーライドして送信する機能が含まれています。たとえば、同じ本文のメッセージに対して、Android に通知する場合の生存時間と iOS に通知する場合の APN プライオリティをそれぞれセットすることができます。プラットフォーム オーバーライドの詳細については、ドキュメントこちらのブログ投稿を参照してください。

Firebase Admin SDK を使うと、FCM v1 API をサーバーサイド アプリケーションに簡単に組み込むことができます。Node.js で単純なデータ メッセージを送る方法を示します。
var registrationToken = 'YOUR_REGISTRATION_TOKEN';

var message = {
  data: {
    score: '850',
    time: '2:45'
  },
  token: registrationToken
};

admin.messaging().send(message)
  .then((response) => {
    console.log('Successfully sent message:', response);
  })
  .catch((error) => {
    console.log('Error sending message:', error);
  });

このコードの Java 版、Python 版、Go 版を見たい方は、ドキュメントをご覧ください。FCM v1 ドキュメントには、すべてのメッセージ ペイロード オプションが記載されています。Admin SDK for FCM を使うと、端末やトピックにメッセージを送信するだけでなく、サーバーからトピックのサブスクリプションを管理することもできます。

Node.js でトピックをサブスクライブする例を示します。
var registrationTokens = [
  'YOUR_REGISTRATION_TOKEN_1',
  // ...
  'YOUR_REGISTRATION_TOKEN_n'
];
admin.messaging().subscribeToTopic(registrationTokens, topic)
  .then(function(response) {
    console.log('Successfully subscribed to topic:', response);
  })
  .catch(function(error) {
    console.log('Error subscribing to topic:', error);
  });

このコードの Java 版、Python 版、Go 版を見たい方は、ドキュメントをご覧ください。Admin SDK のおかげで、メッセージの送信が今までになく簡単になっています。完全なドキュメントは、こちらからご覧ください。FCM を使って何かすばらしいものを作っているという方は、ぜひ @Firebase と @ThatJenPerson にツイートして私たちにお知らせください!

Reviewed by Khanh LeViet - Developer Relations Team