Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Integrasikan Firebase dengan PHP Untuk Komunikasi Waktu Nyata

Manajemen data dan transaksi real-time adalah mode komunikasi terbaru hari ini. Orang membutuhkan aliran data yang cepat saat menggunakan aplikasi seluler dan web. Ada banyak layanan yang tersedia di internet untuk membuat database real-time dan sistem komunikasi. Misalnya Pusher, Onesignal, dan Google Firebase adalah alat yang terkenal untuk itu. Sebelumnya, Anda telah mempelajari cara mengintegrasikan Firebase di Laravel dan membahas topik berikut:

  1. Siapkan Firebase dan buat kunci API.
  2. Integrasikan di Laravel

Dalam contoh PHP Firebase ini, saya akan memberikan sedikit rekap dari artikel sebelumnya dan akan menunjukkan cara Mengintegrasikan Firebase di PHP 7.x, membuat fungsi CRUD sederhana yang dapat digunakan untuk melakukan manipulasi database.

Integrasikan Firebase Dengan PHP
  • Sedikit Rekap tentang Firebase
  • Untuk Apa Firebase Digunakan?
  • Firebase VS MySQL
  • Pro dan Kontra Firebase
  • Menyiapkan Firebase Di Konsol
  • Siapkan Server PHP di Cloudways
  • Mengintegrasikan PHP Dengan Firebase
  • Buat Koneksi Dengan Firebase
  • Buat Kelas Pengguna di Users.php
  • Hubungkan Firebase Dengan Formulir Kontak PHP
  • Kata-Kata Terakhir

Sedikit Rekap tentang Firebase

Firebase adalah layanan komunikasi real-time yang menyediakan aliran data real-time untuk aplikasi chat, seluler, dan web. Ini menyediakan beberapa layanan waktu nyata termasuk perpesanan Cloud, sistem auth, database Firebase PHP, sistem Notification, Storage dan Firebase Hosting, menjadikan platformnya sebagai alat dan layanan lengkap untuk mengembangkan aplikasi berkualitas tinggi.

Pada artikel ini, saya akan membahas detail singkat tentang database Firebase. Sebenarnya, Firebase menyediakan database dan backend PHP real time sebagai layanan. Layanan ini menyediakan API bagi pengembang yang memungkinkan sinkronisasi data aplikasi di seluruh klien yang disimpan di cloud Firebase. Ini menghilangkan kebutuhan sistem basis data relasional di server hosting Anda seperti MySQL dan lainnya.

Untuk Apa Firebase Digunakan?

Saat pengguna ingin membuat, menghasilkan, atau mengambil data dengan sangat cepat dari database, layanan real-time Firebase memberi mereka kemudahan untuk melakukan operasi seperti streaming langsung, fungsi mengobrol, dan lainnya. Ini adalah alat yang sempurna untuk aplikasi yang memiliki database besar seperti Lyft, Shazam, Alibaba dll.

Beberapa fitur utama Firebase adalah:

  • Tidak ada uang tambahan untuk server backend
  • Tampilan cepat data di server
  • NoSQL yang artinya lebih cepat
  • Analitik
  • Hosting yang aman dan cepat
  • Perangkat Pembelajaran Mesin
  • Layanan otentikasi untuk keamanan pengguna
  • Penyimpanan Awan
  • Sinkronisasi data yang cepat

Lebih Mudah. Lebih Banyak Pengembangan.

Biarkan kami membuktikan persyaratan hosting Anda di masa depan. Anda fokus membangun aplikasi Anda.

Mulai Gratis

Firebase VS MySQL

Firebase secara harfiah berbeda dari database tradisional seperti MySQL dan menyimpan data dalam bentuk dokumen. Dokumen-dokumen ini dapat dimanipulasi secara real-time di media lintas platform. MySQL adalah database relasional yang bekerja dengan konsep kunci->nilai dan membuat hubungan dengan kumpulan data yang berbeda.

Hubungan ini kemudian digunakan untuk transaksi data. MySQL tidak memiliki konsep transisi data waktu nyata dan membutuhkan begitu banyak pekerjaan untuk membuat REST API.

Di sisi lain, basis data Firebase menyediakan berbagai platform seperti Android, iOS, dan Web untuk membuat API cepat. Pada dasarnya Firebase adalah struktur data hierarkis yaitu seperti pohon JSON di cloud.

Firebase memiliki konsep kunci, yang merupakan nama node tempat Anda menyimpan data. Anda dapat membandingkannya dengan kunci utama dari database relasional tetapi tidak ada konsep kunci asing yang dikelola di dalamnya.


Dapatkan Buku Pegangan VueJS Anda Sekarang

Cukup masukkan alamat email Anda dan dapatkan tautan unduhan di Kotak Masuk Anda.

Terima Kasih

Ebook Anda sedang menuju Kotak Masuk Anda.


Pro dan Kontra Firebase

Baru-baru ini saya menemukan Pertanyaan Stack Exchange tentang pro dan kontra dari Firebase dan itu menjelaskannya dengan sangat baik.

Pro

  • Jika aplikasi Anda berjalan pada DB terpusat, dan diperbarui oleh banyak pengguna, maka aplikasi tersebut lebih dari mampu menangani pembaruan data waktu nyata antar perangkat.
  • Disimpan di awan sehingga tersedia di mana saja.
  • API Lintas Platform (Jika Anda menggunakan DB ini dengan Aplikasi)
  • Mereka meng-host data – Artinya jika Anda menyimpan banyak data, Anda tidak perlu khawatir tentang perangkat keras.

Kontra:

  • Kecuali aplikasi Anda berjalan pada satu database terpusat yang diperbarui oleh sejumlah besar pengguna, ini adalah pekerjaan yang berlebihan.
  • Format penyimpanan sama sekali berbeda dengan SQL (Firebase menggunakan JSON). Jadi Anda tidak akan bisa bermigrasi semudah itu.
  • Alat pelaporan tidak mendekati standar SQL.
  • Biaya – Terbatas hingga 50 Koneksi dan 100 MB Penyimpanan.
  • Anda tidak menghosting data, Firebase yang melakukannya. Bergantung pada server mana yang Anda dapatkan, waktu menonton di sana tampaknya menjadi banyak gangguan akhir-akhir ini.

Menyiapkan Firebase Di Konsol

Seperti yang saya sebutkan di atas bahwa artikel sebelumnya telah membahas semua langkah untuk menyiapkan database Firebase di konsol, Anda cukup mengikuti artikel itu untuk rekap cepat. Poin yang perlu Anda ikuti untuk menyiapkan Firebase adalah:

  1. Buat Proyek di Firebase
  2. Siapkan aturan baca dan tulis untuk pengguna
  3. Pindahkan ke pengguna dan izin untuk membuat kunci API
  4. Unduh file Json rahasia dan simpan di dalam proyek Anda

Sekarang, Anda siap untuk mengintegrasikan PHP dengan Firebase.

Siapkan Server PHP di Cloudways

Karena Cloudways sudah menyediakan versi PHP 7.x di hostingnya untuk situs web PHP, Anda hanya perlu mendaftar dan meluncurkan server dan sisanya sudah dibuat sebelumnya di platform. Aplikasi akan diatur bersama dengan server dan Anda dapat mengaksesnya melalui URL di halaman detail akses

Anda perlu memperhatikan beberapa hal sebelum menjalankan Firebase di server PHP, bahwa Anda harus memiliki versi PHP>=7.0 yang tersedia dengan ekstensi mbstring PHP.

Anda Mungkin Juga Menyukai: Cara Menghosting PHP di Amazon AWS EC2

Integrasikan PHP Dengan Firebase

Firebase memiliki API luar biasa yang mendukung implementasi dalam berbagai bahasa. Untuk menggunakan PHP dengan Firebase, ia menyediakan paket PHP lengkap yang dapat Anda integrasikan untuk bekerja dengan Firebase. Dalam aplikasi ini, saya akan menggunakan kreait/firebase-php yang juga direkomendasikan oleh Firebase.

Cara yang disarankan untuk menginstal Firebase Admin SDK adalah dengan Composer. Composer adalah alat manajemen dependensi untuk PHP yang memungkinkan Anda mendeklarasikan dependensi yang dibutuhkan proyek Anda dan menginstalnya ke dalam proyek Anda.

composer require kreait/firebase-php ^4.17.0

Atau, Anda dapat menentukan Firebase Admin SDK sebagai dependensi dalam file composer.json yang ada di proyek Anda:

{

  "require": {

     "kreait/firebase-php": "^4.17.0"

  }

}

Setelah menginstal, Anda perlu memerlukan autoloader Komposer:

<?php

require __DIR__.'/vendor/autoload.php';

Buat Koneksi Dengan Firebase

Setelah menyelesaikan instalasi paket dan menambahkan autolader ke file PHP, Anda kemudian dapat membuat koneksi dengan Firebase menggunakan file rahasia yang diunduh dari konsol. Anda harus membagikan URL file itu dalam metode ServiceAccount::fromJsonFile(). Kedua, temukan URL aplikasi Firebase.

<?php

require __DIR__.'/vendor/autoload.php';



use Kreait\Firebase\Factory;

use Kreait\Firebase\ServiceAccount;



// This assumes that you have placed the Firebase credentials in the same directory

// as this PHP file.

$serviceAccount = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');



$firebase = (new Factory)

   ->withServiceAccount($serviceAccount)

   ->withDatabaseUri('https://my-project.firebaseio.com')

   ->create();



$database = $firebase->getDatabase();

Sekarang saat ini ketika Anda melakukan var_dump($database); Anda akan melihat objek database lengkap yang dikembalikan oleh Firebase di layar browser Anda.

Buat Kelas Pengguna di Users.php

Hal berikutnya yang akan saya lakukan adalah membuat file baru bernama Users.php dan mendeklarasikan kelas User di dalamnya. Kelas akan berisi konstruktor di mana saya akan membuat koneksi PHP dengan Firebase API dan menginisialisasinya. Setelah itu saya akan membuat database yang dibuat di firebase.

public function __construct(){

       $acc = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');

       $firebase = (new Factory)->withServiceAccount($acc)->create();

       $this->database = $firebase->getDatabase();

   }

Sekarang untuk membuat fungsi PHP CRUD untuk memanipulasi database, saya akan membuat metode terpisah untuk setiap use case. Tapi pertama-tama mari kita buat dua properti lagi di luar konstruktor yang berisi nama database

protected $database;

   protected $dbname = 'users';

Sekarang mari kita buat metode get() untuk mengambil data. Ini akan berisi ID pengguna untuk mengambil catatan pengguna tertentu. Metode ini juga akan memeriksa apakah ID pengguna tidak tersedia atau disetel, jika itu akan mengembalikan false. Sedangkan jika ditemukan ID yang akan diatur dengan tepat, akan mengambil nilai dengan sukses.

public function get(int $userID = NULL){    

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           return $this->database->getReference($this->dbname)->getChild($userID)->getValue();

       } else {

           return FALSE;

       }

   }

Di dalam metode insert(), saya akan meneruskan array data karena dapat berisi satu atau beberapa data. Sedangkan jika data sudah tersedia untuk userID tertentu, maka akan mengupdate yang sudah ada.

public function insert(array $data) {

       if (empty($data) || !isset($data)) { return FALSE; }

       foreach ($data as $key => $value){

           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value);

       }

       return TRUE;

   }

Sekarang saya akan membuat fungsi delete() yang akan memiliki userID sebagai parameter. ID akan divalidasi jika disetel, kemudian metode remove() akan menghapus data.

public function delete(int $userID) {

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           $this->database->getReference($this->dbname)->getChild($userID)->remove();

           return TRUE;

       } else {

           return FALSE;

       }

   }

Kelas Pengguna yang lengkap adalah sebagai berikut:

<?php

require_once './vendor/autoload.php';



use Kreait\Firebase\Factory;

use Kreait\Firebase\ServiceAccount;



class Users {

   protected $database;

   protected $dbname = 'users';

   public function __construct(){

       $acc = ServiceAccount::fromJsonFile(__DIR__ . '/secret/php-firebase-7f39e-c654ccd32aba.json');

       $firebase = (new Factory)->withServiceAccount($acc)->create();

       $this->database = $firebase->getDatabase();

   }



   public function get(int $userID = NULL){    

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           return $this->database->getReference($this->dbname)->getChild($userID)->getValue();

       } else {

           return FALSE;

       }

   }



   public function insert(array $data) {

       if (empty($data) || !isset($data)) { return FALSE; }

       foreach ($data as $key => $value){

           $this->database->getReference()->getChild($this->dbname)->getChild($key)->set($value);

       }

       return TRUE;

   }



   public function delete(int $userID) {

       if (empty($userID) || !isset($userID)) { return FALSE; }

       if ($this->database->getReference($this->dbname)->getSnapshot()->hasChild($userID)){

           $this->database->getReference($this->dbname)->getChild($userID)->remove();

           return TRUE;

       } else {

           return FALSE;

       }

   }

}



?>

Sekarang mari kita uji kelasnya. Coba terapkan metode dan periksa database Firebase yang diperbarui atau tidak. Pertama-tama inisialisasi kelas:

$users = new Users();

Sekarang mari kita masukkan beberapa data melalui metode insert():

$users = new Users();

//var_dump($users->insert([

//    '1' => 'John',

//    '2' => 'Doe',

//    '3' => 'Smith'

//]));

Demikian pula Anda bisa mendapatkan atau menghapus data seperti ini:

var_dump($users->get(1));

var_dump($users->delete(2));

Jadi Anda bisa melihat bagaimana saya membangun aplikasi CRUD dasar menggunakan PHP dan Firebase dengan membuat kelas sederhana. Jelas Anda dapat memperluasnya dan dapat membuat sesuatu yang menarik sesuai kebutuhan.


Lebih Mudah. Lebih Banyak Pengembangan.

Biarkan kami membuktikan persyaratan hosting Anda di masa depan. Anda fokus membangun aplikasi Anda.

Mulai Gratis

Hubungkan Firebase Dengan Formulir Kontak PHP

Formulir kontak adalah salah satu komponen penting dari situs web apa pun karena mengumpulkan pesan dan pertanyaan pengguna. Mari buat formulir kontak PHP sederhana dan hubungkan dengan Firebase untuk menerima pesan. Ini akan terdiri dari pengkodean dasar karena hanya akan memberi Anda gambaran bagaimana menghubungkannya. Saya akan menggunakan kelas User.php yang sama dan fungsi insert()-nya:

Kode desain formulir kontak adalah sebagai berikut:

<!DOCTYPE html>

<html>



<head>

   <title>Page Title</title>

</head>



<body>



   <link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">

   <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>

   <script src="//code.jquery.com/jquery-1.11.1.min.js"></script>

   <!-- Include the above in your HEAD tag -->



   <div class="container">

       <div class="row">

           <div class="col-md-6 col-md-offset-3">

               <div class="well well-sm">

                   <form class="form-horizontal" action="" method="post">

                       <fieldset>

                           <legend class="text-center">Contact us</legend>



                           <!-- Name input-->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="name">Name</label>

                               <div class="col-md-9">

                                   <input id="name" name="name" type="text" placeholder="Your name" class="form-control">

                               </div>

                           </div>



                           <!-- Email input-->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="email">Your E-mail</label>

                               <div class="col-md-9">

                                   <input id="email" name="email" type="text" placeholder="Your email" class="form-control">

                               </div>

                           </div>



                           <!-- Message body -->

                           <div class="form-group">

                               <label class="col-md-3 control-label" for="message">Your message</label>

                               <div class="col-md-9">

                                   <textarea class="form-control" id="message" name="message" placeholder="Please enter your message here..." rows="5"></textarea>

                               </div>

                           </div>



                           <!-- Form actions -->

                           <div class="form-group">

                               <div class="col-md-12 text-right">

                                   <button type="submit" name="submit" class="btn btn-primary btn-lg">Submit</button>

                               </div>

                           </div>

                       </fieldset>

                   </form>

               </div>

           </div>

       </div>

   </div>



</body>



</html>

Sekarang dalam file PHP Anda dapat menginisialisasi ruang nama dan kelas Pengguna. Setelah itu, cukup tangkap input dan kirimkan ke metode insert() Firebase. Juga ini adalah kode dasar, Anda dapat memperluasnya sesuai persyaratan dan aturan validasi Anda:

< ? php



require __DIR__.

'/vendor/autoload.php';

require 'Users.php';


use Kreait\ Firebase\ Factory;

use Kreait\ Firebase\ ServiceAccount;


$users = new Users();


if (isset($_POST['submit'])) {


   $name = $_POST['name'];

   $email = $_POST['email'];

   $message = $_POST['message'];


   $users - > insert([

       'name' => $name,

       'email' => $email,

       'message' => $message

   ]);



}

Kata Akhir

Teknologi berkembang dengan pesat. Untuk menjadi kompetitif dan tetap dalam perlombaan, Anda harus memperbarui diri dengan yang berubah. Demikian pula, basis data juga sering berkembang dan kita dapat melihat banyak layanan saat ini menyediakan basis data waktu nyata, memproses data tepat waktu.

Dalam contoh Firebase PHP ini, saya telah menunjukkan kepada Anda cara mengintegrasikan PHP dengan Firebase dan menghubungkannya dengan formulir kontak dengan kelas sederhana. Setelah berhasil terhubung, Anda dapat membuat kasus penggunaan yang lebih kompleks untuk memanfaatkan layanan Firebase. Saya juga akan menulis lebih banyak tentang Firebase dengan PHP nanti.

Pertanyaan yang Sering Diajukan

T:Dapatkah saya menggunakan Firebase dengan PHP?

J:Ya, Firebase menyediakan API komprehensif untuk mengintegrasikan platform dengan proyek PHP Anda.

T:Dapatkah saya menghosting PHP di Firebase?

J:Tidak, Firebase hanya mendukung hosting statis dan karena itu, Anda tidak dapat menghosting skrip PHP di Firebase.

T:Bagaimana saya bisa mendapatkan data dari database Firebase menggunakan PHP?

Untuk mendapatkan data Firebase, Anda harus pergi ke folder proyek dan menjalankan perintah:

php composer.phar require kreait/firebase-php

Selanjutnya, index.php baru ke folder proyek dan tambahkan baris berikut ke bagian atas index.php:

require DIR.'/vendor/autoload.php';

Selanjutnya, buat file JSON di folder

Edit index.php dan buat koneksi ke database.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menginstal InfluxDB di Ubuntu 20.10

  2. Apa Langkah-Langkah Dalam Desain Basis Data?

  3. Menghubungkan Microsoft Excel ke Xero

  4. Lebih banyak peningkatan showplan? Ya silahkan!

  5. Labu dengan Contoh – Menyiapkan Postgres, SQLAlchemy, dan Alembic