2017-02-04 3 views
1

私は新しいadmin.messaging().sendToDevice()メソッドを使用してWebプッシュ通知を送信しています。 notificationdataの両方を送信しているので、ユーザーにメッセージの一部のコンテキストを表示できます。FireBackメッセージング `setBackgroundMessageHandler`が通知ボディをオーバーライドします。#AskFirebase

クライアント側では、受信メッセージを処理するためにfirebase.messaging().setBackgroundMessageHandler()を使用しています。

問題はsetBackgroundMessageHandler()が呼び出されないことです。私はa similar questionから解決しようとしましたが、サーバ上のペイロード構造を変更してdataフィールドにnotificationを追加すると、dataadmin.messaging.NotificationMessagePayloadを参照してください)の値として文字列を使用するというエラーがスローされます。私は、サーバー上のfirebase.messagingを使用して、ちょうど他の答えが示唆されているように再構築されない場合は

、私は私がnotificationclickを扱う自分自身を保存しclickActionの素晴らしい機能を享受することができません。

(両方notificationdataが可能です)、私はまた、サービスワーカーのpushイベントにリスナーを追加し、私は完全なペイロードを受け、それだけで

はそれがfirebase.messaging.setBackgroundMessageHandler()のバグですコールバックを呼び出すことはありませんか?それとも私はそれを使っていないのですか?

+0

「データ」キーの中に「通知」キーを入れ子にしないでください。両方ともトップレベルのキーでなければならず、両方ともオプションです。したがって、 'sendToDevice(registrationToken、{notification:{title: 'Title}})'のようなものを試してみてください。 – jwngr

答えて

1

私はFirebaseのサポートに連絡し、彼らはそれが予想される動作だと言いました。

pushが発生したときに何かしたい場合は、dataフィールドのみを送信する必要があります。 notificationフィールドが送信された場合は優先され、コールバックは呼び出されませんが、通知されます。

関連する問題