01 February 2019

How to Connect Laravel With Firebase Real Time Database



Halo teman-teman, pada kesempatan kali ini. Saya akan membahas bagaimana cara membuat koneksi antara laravel dengan firebase real time database.
Taukah anda tentang firebase?

Firebase

Firebase adalah sebuah platform database buatan Google yang akhir -akhir menjadi jajanan baru bagi para Developer , gak aneh kalo sekarang, banyak Developer yang sudah beralih ke Firebase karena berbagai fitur kelebihannya, Salah satunya ini nih, Realtime Database yang akan kita pelajari kali ini.
Sesuai dengan namanya Realtime, yang artinya perubahan langsung, jadi semisal ketika kita mengubah data melalui Database di Firebase secara langsung pada Aplikasi kita data tersebut akan ikut berubuah, sangat mengagumkan bukan?!

Langkah-langkahnya:

  1. Buat Project Firebase
  2. Setting Rules Firebase
  3. Generate API Key Firebase
  4. Install New Laravel project
  5. Install Package
  6. Buat Controller
  7. Tambahkan Route

1. Buat project firebase

Langkah awal, buat project firebase Anda. Buka halaman Firebase kemudian buka Console atau langsung buka firebase.console.com. Anda harus punya akun Gmail dahulu ya, kalau belum ada, silahkan daftar dahulu.
Kemudian, di halaman berikutnya, buat database baru. Klik create project
Tunggu beberapa saat, karena memakan waktu load sedikit lebih lama. Tunggu sampai dilempar ke halaman Dashboard Firebase.

2. Setting Rules firebase Anda

Setelah sukses masuk ke halaman dashboard, pilih menu Database, klik Rules untuk merubah settingannya. Disini kita rubah read dan write value menjadi true semua, kemudian klik tombol Publish.

3. Generate API Key firebase Anda

Kita membutuhkan API Key dari firebase untuk menghubungkan aplikasi kita dengan firebase. Caranya, klik tombol gear project, klik User and Permissions tab.


Setelah masuk ke halaman User and Permission, klik Service Accounts tab. Klik tombol Generate new private key. File berformat json, nantinya disimpan file ini di app/http/Controller.

 4. Install Laravel New Project

Install laravel app menggunakan command :
Laravel new [nama_app_anda]
Jangan lupa untuk generate key :
Php artisan key:generate

5. Install package

Setelah berhasil menginstall laravel application, kemudian tambahkan package kreait/firebase-php ^4.0.
composer require kreait/firebase-php ^4.0


6. Create Controller

Buat Controller dengan nama FirebaseController. Gunakan command berikut :
php artisan make:controller FirebaseController
Tambahkan script seperti berikut :
 <?php  
 namespace App\Http\Controllers;  
 use Illuminate\Http\Request;  
 use Kreait\Firebase;  
 use Kreait\Firebase\Factory;  
 use Kreait\Firebase\ServiceAccount;  
 use Kreait\Firebase\Database;  
 class FirebaseController extends Controller  
 {  
 //  
 public function index(){  
 $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/Laraveltesting-6aeda3a963f2.json');  
 $firebase = (new Factory)  
 ->withServiceAccount($serviceAccount)  
 ->withDatabaseUri('https://laraveltesting-bd2b9.firebaseio.com/')  
 ->create();  
 $database = $firebase->getDatabase();  
 $newPost = $database  
 ->getReference('blog/posts')  
 ->push([  
 'title' => 'Post title',  
 'body' => 'This should probably be longer.'  
 ]);  
 //$newPost->getKey(); // => -KVr5eu8gcTv7_AHb-3-  
 //$newPost->getUri(); // => https://my-project.firebaseio.com/blog/posts/-KVr5eu8gcTv7_AHb-3-  
 //$newPost->getChild('title')->set('Changed post title');  
 //$newPost->getValue(); // Fetches the data from the realtime database  
 //$newPost->remove();  
 echo"<pre>";  
 print_r($newPost->getvalue());  
 }  
 }  
 ?>  

7. Setup Route

Buka file di config/web.php kemudian tambahkan beberapa baris kode seperti berikut:
 <?php  
 /*  
 |--------------------------------------------------------------------------  
 | Web Routes  
 |--------------------------------------------------------------------------  
 |  
 | Here is where you can register web routes for your application. These  
 | routes are loaded by the RouteServiceProvider within a group which  
 | contains the "web" middleware group. Now create something great!  
 |  
 */  
 Route::get('/', function () {  
 return view('welcome');  
 });  
 Route::get('/phpfirebase_sdk','FirebaseController@index');  

Simpan semua perubahan yang telah kita buat. Kemudian coba untuk membuka route yang telah kita buat untuk melihat hasilnya.

Hasil di firebase web:

Feature Matrix package:
Feature
PHP
Node.js
Java
Python
Go
*
*
#

* The Realtime Database API currently does not support realtime event listeners.

# An integration with google/cloud-firestore is currently not available to avoid the need to install the grpc PHP extension when using this SDK. morrislaptop/firestore-php is a new project that aims to provide support for the Firestore without the need to install the grpc PHP extension.

Jadi, untuk php tidak atau belum bisa menggunakan fitur realtime dari firebase ya (catat).

Conclusion

Beberapa langkah mudah membuat project sederhana menggunakan framework laravel dan firebase database realtime menggunakan package dari kreait/firebase-php. Namun, perlu dicatat bahwa untuk PHP tidak atau belum mendukung realtime database API.

No comments: