File Manager
Editing: firebase.php
<?php require __DIR__ . '/../vendor/autoload.php'; use Kreait\Firebase\Factory; use Kreait\Firebase\Messaging\CloudMessage; use Kreait\Firebase\Exception\MessagingException; use Kreait\Firebase\Exception\FirebaseException; class FirebasePush { private $messaging; public function __construct($serviceAccountFile) { // Create the Firebase Factory with the service account $factory = (new Factory) ->withServiceAccount($serviceAccountFile); // Create the Messaging instance $this->messaging = $factory->createMessaging(); } /** * Send a notification to a single device */ public function sendToDevice($token, $title, $body, $data = []) { $message = CloudMessage::withTarget('token', $token) ->withNotification([ 'title' => $title, 'body' => $body ]) ->withData($data); try { return $this->messaging->send($message); } catch (MessagingException $e) { error_log('Firebase Messaging Error: ' . $e->getMessage()); return false; } catch (FirebaseException $e) { error_log('Firebase Error: ' . $e->getMessage()); return false; } } /** * Send a notification to multiple devices */ public function sendToMultipleDevices(array $tokens, $title, $body, $data = []) { $responses = []; foreach ($tokens as $token) { $responses[] = $this->sendToDevice($token, $title, $body, $data); } return $responses; } }
💾 Save
⬅ Back