[PAID] FCM: Send and Receive Push Notifications with Firebase Cloud Messaging [$10 or INR 701]

1.Introduction

Description: Using this extension you can send and receive Push Notifications with FCM's latest SDK (23.3.0).
Latest Version: 1.3
Released: 2023-10-29T18:30:00Z
Last Updated: 2024-02-05T18:30:00Z
Aix size: 476 kb

2. Blocks

3. Docs

Events

MessageReceivedEvent raised when message is received. No notification is shown for messages.
data | dictionary
NotificationReceivedEvent raised when notification is received while app is in foreground. A notification is shown to user in system tray.
id | text
title | text
body | text
data | dictionary
SubscribeSuccessfulEvent raised if subscribe was successful
topic | text
UnsubscribeSuccessfulEvent raised if unsubscribe was successful
topic | text
ErrorOccurredEvent raised whenever an error occurrs. Most of the methods raise this event in case of error.
errorMsg | text
GotTokenEvent raised after getting FCM token
token | text
NotificationSentEvent raised after notification has been sent to FCM server
successful | boolean
response | dictionary
MessageSentEvent raised after message has been sent to FCM server
successful | boolean
response | dictionary
GotDataEvent raised when current screen has been opened by clicking notification. This event is raised automatically.
data | dictionary

Methods

AskNotificationPermissionAsks notification permission which is required on Android 13 and above
ClearNotificationClear notification from system tray
id | number
InitInitialize Firebase Messaging Client with provided credentials. You need to call this method only once and then extension will auto init client itself.
projectId | text
apiKey | text
appId | text
senderId | text
IsInitializedReturns whether FCM has been initialized or not
SubscribeSubscribe to given topic to receive notifications
topic | text
RegisterForNotifClickRegisters screen which will be opened when user clicks on notification which is shown while app is in foreground. Notifications which are shown when app is not opened, will always open Screen1.
screen | text
startValue | text
RetrieveDataRetrieve notification's data which opened current screen.Response is Dictionary.
UnsubscribeUnsubscribe from the given topic
topic | text
GetTokenGets user's FCM token which can be used to send individual notifications
SendNotificationToTopicSend notification to topic. 'largeIcon' argument is optional.
topic | text
serverKey | text
title | text
body | text
largeIcon | text
data | dictionary
SendMessageToTopicSend message to topic.
topic | text
serverKey | text
data | dictionary
SendNotificationToTokensSend notification to token(s)
tokens | list
serverKey | text
title | text
body | text
largeIcon | text
data | dictionary
SendMessageToTokensSend message to tokens
tokens | list
serverKey | text
data | dictionary
SendCustomNotificationSend notification or message with given json content
serverKey | text
jsonNotif | text

Properties

ImportanceSets importance of notification channel
Property Type : write-only
Accepts : text
SoundOnSets whether to enable sound for notification channel or not
Property Type : write-only
Accepts : boolean
SmallIconSets small icon shown in notification. If not specified then app's icon is shown.
Property Type : write-only
Accepts : text

4. Usages

First initialize FCM Client. You need to call Init method once and next time it would be auto initialized.
image

Ask for notification permission
image
Required on Android 13 and above

Now subscribe to a topic
image

image

If subscription was successful then you can send a notification/message to users who have subscribed to topic

Server key is located at Project Settings > Cloud Messaging
Enabled legacy version from GCloud console to obtain it.

You can send notifications/messages to token(s) also

User receives notifications and clicks on it
There can be two scenarios here:-

  1. App in foreground ie. being used by user
    Notification will open registered screen.
    image

GotData even will be raised upon screen initialization if screen opened through notification.


You can obtain data from RetrieveData method also.

  1. App not opened by user.
    Notification click will open Screen1 always and GotData event will be raised.

Retrieve all received messages

5. Purchase

Paypal:

UPI:
vknow360@apl

6. Demo


7. Updates

ChangeLog Version 1.1

[PAID] FCM: Send and Receive Push Notifications with Firebase Cloud Messaging [$10 or INR 701] - #3 by vknow360

ChangeLog Version 1.2

[PAID] FCM: Send and Receive Push Notifications with Firebase Cloud Messaging [$10 or INR 701] - #4 by vknow360

ChangeLog Version 1.3

[PAID] FCM: Send and Receive Push Notifications with Firebase Cloud Messaging [$10 or INR 701] - #5 by vknow360

Thank you.
Hope it helps!

4 Likes

Setup video:

ChangeLog Version 1.1

  • Added ClearNotification block

  • Added feature to store all messages in Tiny DB with tag as timestamp
    Set namespace to FCM_DATA to retrieve those messages

  • Fixed inconsistency in SendNotificationToTokens and SendMessageToTokens blocks

  • Some internal changes to make future improvements easier to adapt

ChangeLog Version 1.2

  • Removed SoundOn property

  • Custom Notification sound feature
    Beta tested by @Franklin_Lopez

To send a notification with custom sound, upload mp3 file to assets and send payload like this:

{\"notification\": {\"body\": \"this is a body\", \"default\": \"this is a title\", \"sound2\":\"default\",\"icon\":\"https://res.cloudinary.com/andromedaviewflyvipul/image/upload/c_scale,h_20,w_20/v1571472765/ktvu4bapylsvnykoyhdm.png\"},\n    \"priority\": \"high\",\n    \"data\": {\n      \"click_action\": \"FCM_MESSAGE\",\n      \"id\": \"1\",\n      \"status\": \"done\"\n    },\n    \"to\": \"/topics/FCMTEST\""}

Value for sound2 key can be file name ( like test for test.mp3 ) or none for no sound or default for default notification sound.
This key must be present in notification payload otherwise no sound will be played.

Aix size is 500 kb now.

ChangeLog Version 1.3

  • Compatible with FSA extension
    Tested by @Franklin_Lopez
  • Aix size reduced to 476 kb
1 Like