androidjsonfirebasefirebase-cloud-messaging

How to configure priority for a FCM message in JSON format?


I made a Cloud Function that sends FCM messages, and is written in Python. The JSON is configured as follows... But I'am not surse how to set message.android.priority and message.android.notification.notification_priority https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages

How to set an Enum in a JSON ? As a string ? And if so, does character case matters ?

I don't understand what is the type of the enum items on these two keys values... Is it string like "HIGH" and "NORMAL", or some integer constants ?

And a secondary question... What should I set so that my FCM message is delivered right away even when the phone screen is closed, and notify the user with sound ?

# Construct the message payload
message = {
  'message': {
      'token': app_token,
      'android': {
          'priority': 'high',
          'notification': {
              'title': msg_title,
              'body' : msg_body,
              'icon' : 'ic_app_mono',
              'color': '#FF0000',
              'sound': 'default', 
              'notification_priority': 'PRIORITY_DEFAULT' }} 
  }}

# Use ADC to get the credentials
credentials = default()[0]

# Send the message
result = SendMessage(credentials, message)

Solution

  • The key is notification_priority and the value must be one of enum NotificationPriority: PRIORITY_UNSPECIFIED, PRIORITY_MIN, PRIORITY_LOW, PRIORITY_DEFAULT, PRIORITY_HIGH, PRIORITY_MAX... on the sending side.

    The equivalent on Android (locally) would be NotificationManager.IMPORTANCE_*. It does not really matter how "important" a notification is, it only matters what is being set, when passing it to NotificationManager... on the receiving side.