0

Firebaseを使用してAndroidにプッシュ通知を実装しましたが、Firebaseコンソールを使用してプッシュ通知を受信して​​います。しかし、デバイストークンとサーバーキーを送信してサーバーに接続しようとすると、私のサーバーからの通知は受信されません。アンドロイドのFirebaseプッシュ通知が動作しない

私たちのサーバー側のチームがテストして、最後には動作していますが、デバイスがプッシュ通知(デバイスがインストールされているデバイス)を受信して​​いないため、Firebaseからプッシュ通知を受け取りました。

サーバーに接続するにはどうすればよいですか? Androidの問題か、google-services.jsonファイルの作成ですか?

+0

はフォアグラウンドでアプリですか?あなたのjsonフォームの外観はどうですか? –

+0

こんにちは。コード、ログ、またはいくつかのサンプルペイロードなしで何かをコメントするのは難しいです。それらをあなたのポストに加えてください。 –

答えて

2

Firebaseプッシュ通知を使用している間に、データペイロード(たとえば、アクティビティ名など)を処理するケースが2つあります。

ケース1:あなたのアプリがフォアグラウンドで実行されている場合(現在の画面上で実行されている)あなたはFirebaseMessagingServiceクラスを拡張する必要があり、あなたのクラスでオーバーライドされているRemoteMessage objectonMessageReceived(RemoteMessage remoteMessage)のメソッドからのデータペイロードになるだろう。例えば

public class FirebaseMessagingServiceHelper extends FirebaseMessagingService { 
    private final String TAG = "FirebaseMsgServiceHelper"; 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    super.onMessageReceived(remoteMessage); 

    Map<String, String> dataPayload = null; 
    dataPayload = remoteMessage.getData(); 
    } 
} 

ケース2:あなたのアプリがバックグラウンドで実行されている場合は、あなたのアプリのランチャーActivityにおける意思にエキストラとしてデータペイロードになるだろう。例については

: -

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //get notification data info 
    Bundle bundle = getIntent().getExtras(); 
    if (bundle != null) { 
    //bundle must contain all info sent in "data" field of the notification 
    } 
} 

しかし、私は、ユーザーがclick_actionNotification Drawerに通知し、データペイロード内をクリックしたときに開いていることになっているActivityの名前を得たときに、これらの2つのケースが正常に動作しませんでしたdata

しかし、私はデータのすべてをダウンパット時にアプリがonMessageReceived(RemoteMessage remoteMessage)方法でRemoteMessage objectにデータペイロード毎回受け取ることになるあなたのアプリフォアグラウンドまたはバックグラウンドで実行されているかどうか、それは両方のケースi.e.に私のためにうまく働きました。

以下は、私が知り得た場所からのリンクです。 Firebase FCM notifications click_action payload

関連する問題