Cara Setting Firebase Messaging Menggunakan Service Account




Assalamu'alaikum Wr. Wb.

        Pada artikel saya kali ini saya ingin membagikan salah satu cara pada dunia pemrograman atau develop aplikasi yaitu setting firebase messaging menggunakan service account. Service Account adalah salah satu metode setting firebase messaging yang jauh lebih aman dibandingkan dengan menggunakan server key dan lebih cocok untuk anda yang menginginkan keamanan yang lebih tinggi terutama untuk aplikasi yang dalam tahap produksi, authentikasi service account menggunakan OAuth 2.0. yang menggunakan konfigurasi file konfigurasi berekstensi json.

Cara mendapatkan file konfigurasi Service Account

  1. Masuk dan login ke halaman firebase console anda.
  2. Masuk dan pilih atau buat projek aplikasi anda
         
  3. Klik icon setting lalu pilih project setting

       


  4. Masuk ke menu Service Account

      

  5. Scroll ke bawah lalu generate key dan downloas file konfigurasi berekstensi json
       

Cara setting Service Account Firebase Messaging pada project aplikasi server Golang
  1. Install package firebase.google.com/go
           
    Install package tersebut dengan menjalankan peritah berikut pada terminal di root projek aplikasi golang anda.

             go get firebase.google.com/go

  2. Install package google.golang.org.api/option
            Install package google.golang.org.api/option pada terminal di root aplikasi golang anda dengan menjalankan perintah berikut:

              go get google.golang.org.api/option

  3. Contoh kode file konfigurasi Firebase Messaging pada aplikasi golang anda


    package main

    import (

        "context"
        "fmt"


        firebase "firebase.google.com/go"

        "firebase.google.com/go/messaging"


        "google.golang.org/api/option"

    )

    func SendNotif(fcmToken string, title string, body string, data map[string]string){

             var credentialFile = 'path/to/firebase_credentials.json'

             opt := option.WithCredentialsFile(credentialFile)

             conf := &firebase.Config{ProjectID: “your-app-project"}

             app, err := firebase.NewApp(context.Background(), conf, opt)

             if err != nil {       
                
     fmt.PrintLn(“err:”,err.Error())

                return

             }


             ctx := context.Background()

             client, err := app.Messaging(ctx)


              if err != nil {
                
     fmt.PrintLn(“err:”,err.Error())

                return 
             }          

             
    messageData := &messaging.Message{

                 Token: fcmToken,

                 Notification: &messaging.Notification{

                    Title: title,

                    Body:  bodyNotif,

                 },

                 Data: data,

             }


             response, err := client.Send(ctx, messageData)


            if err != nil {
                
    fmt.PrintLn(“err:”,err.Error())

                return

            }


            app.Messaging(context.Background())


            fmt.PrintLn(“Success send messasge!”)

            return

    }


    Pada kode di atas your-app-project id adalah id aplikasi anda yang bisa anda peroleh dari link pada console project firebase anda.
  4. Sekarang anda sudah bisa memanggil function di atas untuk mengirim notifikasi menggunakan firebase berdasarkan fcm token yang anda berikan pada function

Cara setting Service Account Firebase Messaging pada project aplikasi server Laravel

  1. Install vendor kreait/firebase-app
              Untuk menginstall vendor tersebut anda perlu menjalankan perintah berikut pada terminal direktori projek anda.

              composer require kreait/firebase-app:^7.14

  2. Contoh kode setting Service Account Firebase Messaging



    <?php


    namespace App\Helpers;


    use Exception;

    use Kreait\Firebase\Factory;

    use Kreait\Firebase\Messaging\CloudMessage;

    class SendNotif
    {

           public static function sendNotif($fcm_token, $title, $body, $data)
           {
                try {

                    $firebase = (new Factory())->withServiceAccount(__DIR__ .'/path/to/firebase_credentials.json');


                    $messaging = $firebase->createMessaging();


                    $message = CloudMessage::fromArray([

        'token' => $fcm_token

                        'notification' => [

                            'title' => $title,

                            'body' => $body,

                       ],

                        'data' => $data,

                   ]);


                      $ress = $messaging->send($message);


          return true;

                   } catch (Exception $e) {

                       return false;

                   }

            }

    }





Posting Komentar

0 Komentar