トークンは、デバイスを識別する手段として使用されます。FCM を使用する単純な Android アプリ (チュートリアルや firebase-chat など) では、コードから推測すると (間違っている場合は訂正してください)、サーバーを実装していないため、トークンをサーバーに送信する必要はありません。メッセージを送信します。Google FCM サーバーと直接対話します。
独自のサーバーを実装して通知メッセージを送信するときは、サーバーが有効なデバイスと「通信」していることを確信を持って知る必要があります。そのため、デバイスから生成されたトークンを識別子として使用します。
サーバーはトークンを含む通知を FCM サーバー (つまり Google サーバー) に送信し、FCM サーバーが送信プロセスを処理します。
したがってsendRegistrationToServer(refreshedToken);
、サーバーから通知を受け取るアプリを承認する場合にのみ、構築する必要があります。
CodePath Google Cloud Messaging チュートリアルで詳しく説明しましょう:
Android でプッシュ通知をサポートする際の重労働の多くは、Google が提供する接続サーバーによって促進されます。これらの Google サーバーは、サーバーからメッセージを送信するための API を提供し、メッセージの受信を許可された Android/iOS デバイスにこれらのメッセージを中継します。
Google Play Services を搭載した Android デバイスでは、FCM クライアントのサポートが既に利用可能になっています。プッシュ通知を受信するには、まずアプリが Google サーバーに登録してトークンを取得する必要があります。
次に、このトークンをサーバーに渡して、後続のプッシュ通知の送信に使用できるようにする必要があります。
アプリが FCM ベースのメッセージをリッスンするように登録されていれば、プッシュ通知を受信できます。
つまり、FCM を実装するには、アプリに Google サーバーと独自のサーバーの両方が必要になります。アプリが Google からトークンを取得すると、このトークンをサーバーに転送する必要があります。このトークンは、Google サーバーへの API 呼び出しに使用できるように、サーバーによって永続化される必要があります。このアプローチでは、サーバーと Android デバイスは永続的な接続を作成する必要がなく、メッセージのキューイングとリレーの責任はすべて Google のサーバーによって処理されます。