Download the PHP package mrgarest/laravel-firebase-sender without Composer
On this page you can find all versions of the php package mrgarest/laravel-firebase-sender. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-firebase-sender
Laravel Firebase Sender
Laravel library for sending notifications with Firebase Cloud Messaging (FCM).
❗️ This library only works with the new FCM HTTP v1 API ❗️
If you have previously used the old version of v1, you should read the instructions for migrating to v2.
Supported platforms
✅ | Platform |
---|---|
✅ | Apns |
✅ | Android |
✅ | WebPush |
Installation
You can install the package via composer:
Configuration
After installing the package, you will need to publish the configuration file firebase-sender.php
After publishing the configuration file, you need to open it and add the Service account data from the Firebase console.
If you don't know how to get a Service account, here is a video from YouTube.
Usage
FirebaseSender
is a class that is responsible for sending notification to devices via Firebase Cloud Messaging (FCM) using a service account with Firebase.
MY_SERVICE_ACCOUNT_NAME
- the identifier of your service account registered in the firebase-sender.php configuration
Send a notification to a specific device
To send a notification directly to the device, use the setDeviceToken()
method, passing in a unique device token generated by Firebase.
Note that you can use either setDeviceToken()
or setTopic()
. You cannot use both methods.
Send a notification on a specific topic
To send a notification to all devices subscribed to a specific topic, use the setTopic() method, passing the topic name as a string:
Topic conditions
The TopicCondition class allows you to create complex logical conditions for determining the topics to which a notification will be sent.
To send a notification to a combination of topics, you need to build a boolean expression that describes the target topics. The expression can contain the AND (&&
) and OR (||
) operators, as well as grouping using parentheses.
For example, to send a notification to devices subscribed to topicA
and (topicB
or topicC
), you can build the following expression:
Set notifications
The setNotification()
method allows you to set the main content of the notification that will be sent through Firebase.
Set notifications for Android
The setAndroid()
method allows you to set the notification content for Android devices.
Set notifications for APNs
The setApns()
method allows you to set the notification content for APNs (Apple Push Notification Service).
Send a notification
After configuring the notification, you can send it by calling the send()
method.
Custom message
With this method, you can specify a custom data structure for the message to be sent through FCM. This can be useful for sending additional information that is not included in the standard notification options.
When using setMessage()
, the setNotification()
, setAndroid()
and setApns()
methods will not work.
Auth Token
In some cases, you may need an Auth Token for Firebase, and it can be obtained separately without sending any notifications using the getAuthToken()
method.
Example of a successful response:
Localized notifications
AndroidPush
and ApnsPush
support sending localized notifications, which allows you to dynamically display text depending on the user's language.
To do this, use the titleLocKey
and bodyLocKey
parameters, which specify the keys to localized strings in your application's resources.
You can also specify the titleLocArgs
and bodyLocArgs
parameters, which can be used to pass values that will be inserted into localized notification templates.
Notification log
If you want to use the log of sent notifications, you will also need to publish the migration file and perform the migration.
To add notification information to the log, you'll need to use an additional method before sending notifications:
This method can also take an additional value of type string, which can be used, for example, to check whether a notification was sent with a specific argument to avoid duplicate notifications.
To check if there is an additional value in the log, you can use this method:
You can also check the additional value by date range:
You can also check if notifications were sent within a specific time range: