3

Я тестирую облачные сообщения Firebase.RemoteMessage.GetNotification() возвращает null, если запрос не из Firebase Console?

Если я использую Firebase консоль, чтобы отправить сообщение - на мой код объекта I Notification со значениями, установленными - не проблема:

public override void OnMessageReceived(RemoteMessage message) 
    { 
     base.OnMessageReceived(message); 

     Firebase.Messaging.RemoteMessage.Notification oNotification; 

     oNotification = message.GetNotification(); 

Я использую http://requestmaker.com/ отправить уведомление - и все работает отлично - он отправляется, и я возвращаю messageID.

POST /fcm/send HTTP/1.1 
Host: fcm.googleapis.com 
Accept: */* 
Authorization: key=not-a-real-key0omClYhniZaIAercMVzeFHEG508USi8lud9pxC-SzxAAbR2mflAfVNsfrbrsPJxoFYTr15ytRn9aqWSQXm5x00AOwu2Wl6mWwTcm9l6G 
Content-Length: 188 
Content-Type: application/x-www-form-urlencoded 

Но oNotification = message.GetNotification(); возвращает null. Вопросы - почему?

+1

Hi. Есть вероятность, что вы отправляете полезную нагрузку ['data'] (https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages) вместо полезной нагрузки« уведомление ». При использовании Консоли Firebase отправленное сообщение всегда обрабатывается как сообщение сообщения об уведомлении. Можете ли вы отправить данные * запроса *, которые вы отправляете с помощью requestmaker? –

+1

URL запроса: https://fcm.googleapis.com/fcm/send - ключ авторизации = AAAAAXu6AHE: APA9 .... registration_id Запрос данных = eMM1bnJVxT8: APA91bEiVop08dRKLTSF9LdW4mGql8EFw9CwXjLqdAqxs7D8A_GF_D6DU7QPyy5JahzZoQVraJmxTQiV0UTUet_hbr1G_9xNv87Vpu4yCgN751hVF07hdRx-hlJRcfUEC82IlvaV-9AD –

+1

@AL. Это хороший момент! https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages –

ответ

4

Похоже, что вы отправляли полезную нагрузку data вместо полезной нагрузки notification. При использовании Консоли Firebase отправленное сообщение всегда обрабатывается как полезное сообщение notification (или комбинация того и другого, если вы добавили собственные пары «ключ-значение» в опциях Advance). См. FCM Message Types.

Возможно, вы отправляли только data -однопользовательскую нагрузку при использовании запрашивающего. В коде, вы только обработка сообщений с notification типов полезной нагрузки:

message.GetNotification(); 

Я не в полной мере знаком с Android Xamarin, но обычно с ТСМ, есть также способ получить data полезную нагрузку, позвонив RemoteMessage.getData() , если вы решите направить data - только полезную нагрузку.

 Смежные вопросы

  • Нет связанных вопросов^_^