Download the PHP package meeeet-dev/larafirebase without Composer
On this page you can find all versions of the php package meeeet-dev/larafirebase. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download meeeet-dev/larafirebase
More information about meeeet-dev/larafirebase
Files in meeeet-dev/larafirebase
Package larafirebase
Short Description Laravel Firebase Cloud Messaging (Larafirebase) with HTTP v1.
License MIT
Homepage https://github.com/meeeet-dev/larafirebase
Informations about the package larafirebase
Introduction
Larafirebase is a package thats offers you to send push notifications via Firebase in Laravel.
Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably deliver messages at no cost.
For use cases such as instant messaging, a message can transfer a payload of up to 4KB to a client app.
Installation
Follow the steps below to install the package.
Install via Composer
Copy Configuration
Run the following command to publish the larafirebase.php config file:
Configure larafirebase.php as needed
Open the larafirebase.php configuration file, which you just published, and set the following values as needed:
project_id: Replace with your actual Firebase project ID.firebase_credentials: This refers to the JSON credentials file for your Firebase project. Make sure it points to the correct location in your project. This JSON file contains the authentication information for your Firebase project, allowing your Laravel application to interact with Firebase services. You can generate this JSON file in the Firebase Console. Once you have it, specify its path in this configuration.
Usage
Follow the steps below to find how to use the package.
Example usage in any class you want to use Larafirebase:
Using the HasFirebaseNotification Trait
The package provides a reusable HasFirebaseNotification trait that simplifies implementing Firebase notifications. This is the recommended approach for most use cases.
Available Customization Fields
The trait supports all Firebase message fields. You can customize by setting properties or overriding methods:
| Field | Property | Method Override | Description |
|---|---|---|---|
| Title | $title |
getFirebaseTitle() |
Notification title |
| Body | $body |
getFirebaseBody() |
Notification body text |
| Image | $image |
getFirebaseImage() |
Image URL for rich notifications |
| Data | $data |
getFirebaseData() |
Additional custom data payload |
| Topic | $topic |
getFirebaseTopic() |
Topic name for topic-based messaging |
| Tokens | $tokens |
getFirebaseTokens() |
Device tokens (auto-detected from user) |
| Delivery Method | $deliveryMethod |
getFirebaseDeliveryMethod() |
'notification' or 'message' |
| Raw Payload | $raw |
getFirebaseRaw() |
Complete custom payload (overrides all) |
| Array Payload | $fromArray |
getFirebaseArray() |
Array-based payload construction |
Option 1: Basic Usage (Simple & Quick)
Perfect for straightforward notifications with static or simple dynamic content.
Usage:
Option 2: Advanced Usage (Custom Logic)
Override trait methods for complete control over notification content and behavior.
Usage:
Option 3: Manual Implementation (Without Trait)
Implement the toFirebase method directly if you prefer full manual control.
Platform-Specific Configurations
The package supports full FCM v1 API features with platform-specific configurations for Android, iOS/APNS, and Web push notifications.
Android Configuration
Customize notifications for Android devices with priority, TTL, colors, sounds, and more.
Available Android Options:
| Method | Description |
|---|---|
withPriority('high') |
Message priority: 'normal' or 'high' |
withTtl(seconds) |
Time-to-live (0-2419200 seconds) |
withCollapseKey(key) |
Group messages (max 4 keys) |
withRestrictedPackageName(name) |
Restrict to specific app |
withDirectBootOk(bool) |
Deliver when device locked |
Android Notification Options:
| Method | Description |
|---|---|
withColor('#RRGGBB') |
Notification color |
withSound(sound) |
Custom sound file |
withChannelId(id) |
Notification channel (required for Android O+) |
withClickAction(action) |
Action on click |
withNotificationPriority(priority) |
PRIORITY_MIN, LOW, DEFAULT, HIGH, MAX |
withVisibility(visibility) |
PRIVATE, PUBLIC, SECRET |
withLightSettings(color, onMs, offMs) |
LED light settings |
withVibrateTimings([ms...]) |
Vibration pattern |
withNotificationCount(count) |
Badge number |
withSticky(bool) |
Prevent swipe dismiss |
iOS/APNS Configuration
Customize notifications for iOS devices with APNS-specific options.
Available APNS Options:
| Method | Description |
|---|---|
withPriority(priority) |
5 (normal) or 10 (high) |
withExpiration(timestamp) |
Unix timestamp when message expires |
withCollapseId(id) |
Replace previous notifications |
withTopic(topic) |
App bundle ID |
withPayload(array) |
Complete APNS payload |
withApsPayload(aps, custom) |
APS dictionary + custom data |
withAnalyticsLabel(label) |
Analytics tracking label |
withImage(url) |
Image URL override |
withLiveActivityToken(token) |
iOS Live Activity token |
Web Push Configuration
Customize notifications for web browsers.
Available Webpush Options:
| Method | Description |
|---|---|
withTtl(seconds) |
Time-to-live in seconds |
withUrgency(urgency) |
very-low, low, normal, high |
withTopic(topic) |
Message replacement topic |
withNotification(array) |
Web Notification API object |
withLink(url) |
Click action URL (must be HTTPS) |
withAnalyticsLabel(label) |
Analytics tracking label |
Complete Platform-Specific Example
Condition-Based Targeting
Send to devices matching specific conditions:
Troubleshooting
❌ Error: "The notification is missing a toFirebase method"
Problem: Your notification class doesn't have a toFirebase() method.
Solution 1 - Use the Trait (Recommended):
Solution 2 - Implement Manually:
Tips
- You can use
larafirebase()helper instead of Facade.
Payload
Check how is formed payload to send to firebase:
Example 1:
Example 2:
If you want to create payload from scratch you can use method fromRaw, for example:
Made with ♥ by Meet Bhanabhagwan (@meeeet-dev).
All versions of larafirebase with dependencies
illuminate/notifications Version ^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
google/apiclient Version ^2.12