2016-05-23 15 views
4

Ich migrierte zu Firebase Cloud Messaging und beim ersten Versuch, Nachricht zu senden, erhielt ich eine Benachrichtigung über die Konsole in Firebase und versuchte dann nach einigen Minuten eine weitere Benachrichtigung zu senden, aber nicht mehr eine weitere Benachrichtigung erhält in meiner Konsole Feuerbasis, sagte aber, dass es CompletedMein Gerät erhält keine andere Benachrichtigung (FCM)

Update

Hier war mein Code

MainActivity

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

checkPlayServices(); 

Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken()); 

} 
.... 
} 

MyFirebaseInstanceIDService

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { 

@Override 
public void onTokenRefresh() { 
    // Get updated InstanceID token. 
    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.d(TAG, "Refreshed token: " + refreshedToken); 

    sendRegistrationToServer(refreshedToken); 
} 
} 

MyFirebaseMessagingService

public class MyFirebaseMessagingService extends FirebaseMessagingService { 

private static final String TAG = "MyFirebaseMsgService"; 


// [START receive_message] 
@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 

    Log.d(TAG, "From: " + remoteMessage.getFrom()); 
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 
} 
// [END receive_message] 

es scheint, dass andere Geräte erhält es aber die anderen Geräte ist es nicht empfangen.

+0

Bitte den entsprechenden Code hinzufügen. –

+0

@ShadabAnsari Ich habe meinen Code hinzugefügt. – natsumiyu

+0

War Ihre App beim Senden der zweiten Benachrichtigung im Vordergrund? Haben Sie gesehen, ob onMessageReceived() über die Log-Anweisungen aufgerufen wurde? – AdamK

Antwort

1

Aufgrund des Kommentars von AdamK, der fragt, ob ich die zweite Benachrichtigung im Vordergrund sende, habe ich festgestellt, dass die Benachrichtigung nur ausgelöst wird, wenn meine App im Hintergrund ist.

In der Dokumentation wurde gesagt, dass in onMessageReceived(), Wenn die Anwendung im Vordergrund ist behandeln beide Daten und Benachrichtigungen in der onMessageReceived(). Daher wird eine Benachrichtigung nicht automatisch ausgelöst, wenn sich die App im Vordergrund befindet. Um dies zu tun, müssen Sie in Ihrem onMessageReceived() Callback selbst eine Benachrichtigung auslösen.

Ich nenne meine eigene sendNotification() Methode in meinem onMessageReceived():

sendNotification(remoteMessage.getNotification().getBody());

die die Benachrichtigung auch zeigt, wenn die Anwendung im Vordergrund steht.

+1

Ordnen Sie dies richtig als Antwort. :) –

+0

Ich verstehe deine Lösung nicht. Macht es Ihnen etwas ausarbeiten? Weißt du, dass es Benachrichtigung im Vordergrund und im Hintergrund zu sehen? Mein Punkt der Verwirrung ist, dass, wenn 'onMessageReceived' sowieso nicht aufgerufen wird, warum ist es wichtig, dass Sie' sendNotification (remoteMessage.getNotification(). GetBody()) 'aus" onMessageReceived "aufrufen? Oder machst du diesen Anruf von woanders? –

+0

@NouvelTravay ich aktualisierte meine Antwort. Bitte prüfe. – natsumiyu

Verwandte Themen