0

アンドロイドのプッシュ通知の場合、FCMはデバイスごとにトークンを作成します。このシナリオでは、複数のユーザーが同じデバイスをログイン用に使用している場合、トークンがプッシュ通知にどのように作用しますか?プッシュ通知が現在のユーザーのみに送信された場合、既にそのデバイスを使用していた他のユーザーはどうなりますか?この通知はキューに入れられ、ユーザーが再び同じデバイスをアクティブにしている場合に送信されますか?このシナリオで私を助けてください。ありがとう。FCMプッシュ通知のデバイストークンを、異なる資格情報を持つアンドロイドの同じデバイスに生成する

+0

はい、通知がサーバーに古いユーザーのために、これらのトークンを削除しない場合は、すべてのユーザーに送信された、しかし、通知がためである[FCM(firebaseクラウドメッセージング)トークンのすべてのユーザー –

+0

可能な重複しているだけで、そのデバイス上で受信されました1つのデバイスまたは1つのアカウント?](https://stackoverflow.com/questions/37693932/is-fcm-firebase-cloud-messaging-token-for-one-device-or-for-one-account) –

答えて

0

トークンが生成されると、リフレッシュされたトークン文字列に格納されます。このステートメントは、サービスを作成しているので最初に実行されます。アプリケーションが起動されたときに....サービスが呼び出され、その文字列を共有設定に格納し、その文字列が必要なときはいつでも使用する必要があります。

@Override 
public void onTokenRefresh() { 
    //Getting registration token 
    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
    // store the refreshedToken into shared preferencees. 
} 
+0

コードスニペットが問題を解決する可能性があります。[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は、あなたの投稿の質を向上させるのに本当に役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 –

+0

トークンが生成されると、それはrefreshedToken文字列に格納されます。このステートメントは、サービスを作成しているので最初に実行されます。アプリケーションが起動されたときに....サービスが呼び出され、その文字列を共有設定に格納し、その文字列が必要なときはいつでも使用する必要があります。 –

0

実は、あなたはあなたのログインユーザIDをチェックして管理することができ、あなたのFCMメッセージで受信した通知ユーザーIDと比較)は、(onMessageReceivedサービスメソッドを受けます。例と

全詳細: サーバーからの通知を生成すると

{"to":"[add your token]","data":{"title":"[add title]","body":"[add your message]","userId":"[your userid]"},"priority":"high"} 

は、ログインユーザーIDと通知を受け比較してみてくださいとの両方の場合は、これを行った後に知って、道を次のように余分なパラメータでUSERIDしてください一致が生成されない場合は、下のチェックを行ってください。

@Override 
    public void onMessageReceived(final RemoteMessage remoteMessage) { 
     Log.d("onMessageReceived-->", "getData ->" + remoteMessage.getData()); 
     super.onMessageReceived(remoteMessage); 
     try { 

      String userId=remoteMessage.getData().get("userId"); 
      if(userId==loginUserId){ 
       genrateLocalNotification(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
関連する問題