Android:通知未使用Firebase Cloud Message传递给用户

时间:2018-07-03 12:09:34

标签: android firebase firebase-cloud-messaging

我第一次使用Firebase Cloud Message。我将我的应用程序连接到Firebase并使用了this tutorial,但没有任何通知

这是我的代码。

AndroidManifest.xml

  <service
        android:name=".MyFirebaseInstanceIDService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name=".MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

MyFirebaseInstanceIDService

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService  {
private static final String TAG = "MyFirebaseIIDService";
private static final String FRIENDLY_ENGAGE_TOPIC = "football";
@Override
public void onTokenRefresh() {
    String token = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "FCM Token: " + token);

    // Once a token is generated, we subscribe to topic.
    FirebaseMessaging.getInstance()
            .subscribeToTopic(FRIENDLY_ENGAGE_TOPIC);
   }
}

MyFirebaseMessagingService

public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFMService";

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    // Handle data payload of FCM messages.
    Log.d(TAG, "FCM Message Id: " + remoteMessage.getMessageId());
    Log.d(TAG, "FCM Notification Message: " +
            remoteMessage.getNotification());
    Log.d(TAG, "FCM Data Message: " + remoteMessage.getData());
   }
}

这是我在Firebase Console中发送的消息。

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要创建一个通知,然后它将显示在通知托盘上。 现在,当您的on message收到方法调用时,它将仅显示日志。

Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request 
   code */, intent, PendingIntent.FLAG_ONE_SHOT);
    Uri defaultSoundUri = 
    RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new 
    NotificationCompat.Builder(this)

    .setContentTitle(title)
            .setContentText(message)

            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setPriority(Notification.PRIORITY_MAX)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) 
    getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(notificationID() /* ID of notification */, 
    notificationBuilder.build());