Sử dụng firebase sdk for php để tương tác với các service firebase: realtime database, push message... Tham khảo thêm bài viết
Chúng ta cần cài đặt Laravel Firebase package cho dự án
composer require kreait/laravel-firebase
// Public file config
php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider" --tag=config
Vào firebase truy cập vào project setting, service account tải server key firebase_credentials.json
về thư mục root của dự án. Config key trong file config config/firebase.php
'credentials' => base_path(env('FIREBASE_CREDENTIALS', 'firebase_credentials.json')),
Viêt một service để gửi push notification
<?php
namespace App\Contracts\Services;
interface FirebaseService
{
/**
* @param array $data
* @param array $fcmToken
* @return void
*/
public function pushNotifications(array $data, array $fcmToken = []): void;
}
<?php
namespace App\Services;
use Kreait\Firebase\Exception\FirebaseException;
use Kreait\Firebase\Exception\MessagingException;
use Kreait\Firebase\Messaging\CloudMessage;
use Kreait\Laravel\Firebase\Facades\Firebase;
use App\Contracts\Services\FirebaseService;
class FirebaseServiceImpl implements FirebaseService
{
protected $notification;
public function __construct()
{
$this->notification = Firebase::messaging();
}
/**
* @param array $data
* @param array $fcmToken
* @return void
* @throws FirebaseException
* @throws MessagingException
*/
public function pushNotifications(array $data ,array $fcmToken = []): void
{
$message = CloudMessage::fromArray([
'notification' => [
'title' => $data['title'] ?? null,
'body' => $data['body'] ?? null
],
'data' => $data
]);
if ($fcmToken) {
$this->notification->sendMulticast($message, $fcmToken);
}
}
}
Khi muốn push notification sử dụng firebase thì binding FirebaseService
trong service providers để sử dụng và gửi push là xong. Tham khảo thêm bài viết hướng dẫn gửi push notification laravel firebase
$data = [
'title' => trans('messages.title'),
'body' => trans('messages.content'),
'event_id' => $id,
];
$this->firebaseService->pushNotifications($data, $fcmTokens);
Như vậy là chúng ta đã có thể sử dụng firebase sdk cho php để gửi push notification cho ứng dụng. Thanks for readding...
https://firebase-php.readthedocs.io/en/7.16.0/overview.html https://www.iankumu.com/blog/laravel-firebase/ https://www.iankumu.com/blog/laravel-firebase-push-notification/