問題タブ [firebase-cloud-messaging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firebase - REST API 経由で Firebase クラウド メッセージング クライアントのサブスクライブを解除する
REST API を介してモバイル クライアントのサブスクリプションを解除することはできますか? アプリケーションサーバーがクライアントのサブスクライブを解除できるようにするために必要です。
c# - FCM (Firebase Cloud Messaging) を使用して C# で Android にプッシュを送信する
このコードを使用して、Winforms、Webforms などを使用して、GCM を使用して C# で通知メッセージを送信しています。次に、FCM (Firebase Cloud Messaging) に送信したいと思います。コードを更新する必要がありますか? :
しかし、GCM は FCM に変更されました。これは通知を送信するための同じコードですか? SERVER_API_KEY はどこにありますか? 同じ解決策ですか?
android - FireBase クラウド メッセージングには Play サービスが必要ですか?
FCM は必要ですか。通知を受け取るには、ユーザーが電話に Play Services をインストールする必要があることを教えてください。
GCM が動作していることがわかりますが、そうでないことを期待して FCM に移行することを計画しています...テストする前にどのように知ることができますか?
java - Firebase コンソールではなく Java からの Firebase Cloud Messaging 通知
Firebase は初めてで、Java アプリケーションがクライアントの Firebase トークンを使用して通知/メッセージを送信しようとすると、送信者 ID の不一致や HTTP ステータス 401 の認証エラーなどのエラーが発生します。Firebase コンソールを使用すると、メッセージをクライアントに送信できることに注意してください。
クライアント アプリでは、次のことを行いました。
- ここから複製されたFirebase
messaging
クイックスタート アプリ -- https://github.com/firebase/quickstart-android/tree/master/messaging -- Firebase の依存関係などで既にセットアップされています。で複製されたアプリをロードしましたAndroid Studio
。 - Firebase コンソールを使用して、という名前の新しいプロジェクトを作成し、Android アプリのパッケージ名として
My Notification Client
使用するアプリを追加しました。com.google.firebase.quickstart.fcm
google-services.json
新しく作成されたプロジェクトに追加された Android アプリ用のダウンロードファイルをmessaging/app/
フォルダーにコピーし、 内のグレード ファイルと同期しますAndroid Studio
。- エミュレーターを作成し、 内からアプリを実行しました
Android Studio
。アプリがエミュレーターに読み込まれたら、ボタンをクリックして、 のタブでLog Token
クライアントの Firebase トークンを取得します。Android Monitor
Android Studio
- Firebase コンソールを使用して、新しく作成されたプロジェクトを選択し、左側のペインからリンクを
My Notification Client
クリックしNotifications
て、前の手順で取得した Firebase トークンを貼り付けてデバイスに通知を送信しました。
これはうまくいきました!次のステップは、Firebase コンソールを使用する代わりに、別の単純な Java アプリケーション (最終的に通知サーバーになる) を使用してクライアントに通知を送信することでした。
これを達成するために、ここで概説されている手順に従いました -- https://firebase.google.com/docs/server/setup#prerequisites。具体的には、これらは私が実行した手順です。
My Notification Server
Firebase Console で呼び出される新しいプロジェクトを作成しました。- Firebase コンソールで使用
Settings > Permissions
して、新しいサービス アカウントを作成し、serviceAccountCredentials.json
ファイルをダウンロードしました。 - Eclipse で新しい Maven プロジェクトを作成し、pom.xml に次の依存関係を追加しました。
次に、以下に示すように、新しい FCM エンドポイントを使用するために保護されたメソッド
/li>com.google.android.gcm.sender.Sender
を作成FCMSender
およびオーバーライドするように拡張しました。getConnection(String url)
私の Java アプリケーションの
/li>main()
メソッドは次のようになります。
Java アプリケーションを実行すると、MismatchSenderId
エラーが発生します。curl
以下に示すようにトラブルシューティングを試みましたが、同じエラーが発生しました。
Firebase コンソールのプロジェクトのServer Key
リストにあるProject Settings > Cloud Messaging
タブを使用する代わりに、を使用してみましたが、それが原因でした。My Notification Server
Project Number
InvalidRequestException: HTTP Status Code: 401
エラーコードのFirebaseドキュメントには、次のことが記載されていますMismatchSenderId
。
送信者の不一致 200 +
error:MismatchSenderId
登録トークンが特定の送信者グループに関連付けられています。クライアント アプリは、FCM に登録するときに、メッセージの送信を許可する送信者を指定する必要があります。メッセージをクライアント アプリに送信するときは、これらの送信者 ID のいずれかを使用する必要があります。別の送信者に切り替えると、既存の登録トークンは機能しなくなります。
My Notification Client
メッセージを受信できるように、Firebase Console で Android アプリ (プロジェクトに追加されたもの) を構成できる場所/方法がわかりませんでした。
これについて何か助けていただければ幸いです!