How to Send Web Push Notifications in Laravel 9 using Firebase

How to Send Web Push Notifications in Laravel 9 using Firebase

Laravel 9 send push notification using google firebase fcm; In this tutorial, we will learn how to send push notification to android and ios mobiles using google firebase fcm in laravel 9 apps.

Sending push notifications to mobile devices are very easy things with laravel. We can use send push notification in android and ios device without using any laravel package.

Laravel 9 Send FCM Push Notification using Firebase Tutorial

Use the following steps to send push notification to android or ios mobile using google firebase fcm in laravel 9 apps:

  • Step 1: Create a Helper File
  • Step 2: Add Fcm Key in .env
  • Step 3: Send Notification

Step 1: Create a Helper File

First of all, Navigate to App directory and inside this directory create a new file new helpers.php.

Then update the following code into your helpers.php file as follow:

app/helpers.php

<?php
 
  function send_notification_FCM($notification_id, $title, $message, $id,$type) {

    $accesstoken = env('FCM_KEY');

    $URL = 'https://fcm.googleapis.com/fcm/send';


        $post_data = '{
            "to" : "' . $notification_id . '",
            "data" : {
              "body" : "",
              "title" : "' . $title . '",
              "type" : "' . $type . '",
              "id" : "' . $id . '",
              "message" : "' . $message . '",
            },
            "notification" : {
                 "body" : "' . $message . '",
                 "title" : "' . $title . '",
                  "type" : "' . $type . '",
                 "id" : "' . $id . '",
                 "message" : "' . $message . '",
                "icon" : "new",
                "sound" : "default"
                },

          }';
        // print_r($post_data);die;

    $crl = curl_init();

    $headr = array();
    $headr[] = 'Content-type: application/json';
    $headr[] = 'Authorization: ' . $accesstoken;
    curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($crl, CURLOPT_URL, $URL);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $headr);

    curl_setopt($crl, CURLOPT_POST, true);
    curl_setopt($crl, CURLOPT_POSTFIELDS, $post_data);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);

    $rest = curl_exec($crl);

    if ($rest === false) {
        // throw new Exception('Curl error: ' . curl_error($crl));
        //print_r('Curl error: ' . curl_error($crl));
        $result_noti = 0;
    } else {

        $result_noti = 1;
    }

    //curl_close($crl);
    //print_r($result_noti);die;
    return $result_noti;
}

Step 2: Add Fcm Key in .env

Go to your project root directory and open .env file. Then update fcm key as follow:

FCM_KEY =

Now, you can use your google fcm key as follow

$accesstoken = env('FCM_KEY');

Step 3: Send Notification

Next step, open your controller file and you can call send_notification_FCM($notification_id, $title, $message, $id,$type) from helpers.php with following parameters.

public function notifyUser(Request $request){

   $user = User::where('id', $request->id)->first();

   $notification_id = $user->notification_id;
   $title = "Greeting Notification";
   $message = "Have good day!";
   $id = $user->id;
   $type = "basic";

   $res = send_notification_FCM($notification_id, $title, $message, $id,$type);

   if($res == 1){

      // success code

   }else{

     // fail code
   }
   

}

send_notification_FCM() with following parameter $notification_id, $title, $message, $id,$type. When you want to send push notification to the mobile device, that time you need to call the send_notification_FCM() with specified parameters.

Conclusion

In send push notification in laravel tutorial, you have learned how to send push notification fcm using CURL and helper without using package in laravel.

Recommended Laravel Tutorials

AuthorAdmin

Greetings, I'm Devendra Dode, a full-stack developer, entrepreneur, and the proud owner of Tutsmake.com. My passion lies in crafting informative tutorials and offering valuable tips to assist fellow developers on their coding journey. Within my content, I cover a spectrum of technologies, including PHP, Python, JavaScript, jQuery, Laravel, Livewire, CodeIgniter, Node.js, Express.js, Vue.js, Angular.js, React.js, MySQL, MongoDB, REST APIs, Windows, XAMPP, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL, and Bootstrap. Whether you're starting out or looking for advanced examples, I provide step-by-step guides and practical demonstrations to make your learning experience seamless. Let's explore the diverse realms of coding together.

Leave a Reply

Your email address will not be published. Required fields are marked *