Firebase

**Firebase** adalah suatu layanan dari Google yang digunakan untuk mempermudah para pengembang aplikasi dalam mengembangkan aplikasi. Dengan adanya Firebase, pengembang aplikasi bisa fokus mengembangkan aplikasi tanpa harus memberikan usaha yang besar. Dua fitur yang menarik dari Firebase yaitu Firebase Remote Config dan Firebase Realtime Database. Selain itu terdapat fitur pendukung untuk aplikasi yang membutuhkan pemberitahuan yaitu Firebase Notification.

## Sejarah
Firebase berevolusi dari Envolve, startup sebelumnya yang didirikan oleh James Tamplin dan Andrew Lee pada tahun 2011. Envolve menyediakan pengembang Antarmuka pemrograman aplikasi yang memungkinkan integrasi fungsi obrolan daring ke situs web mereka. Setelah merilis layanan obrolan, Tamplin dan Lee menemukan bahwa Envolve digunakan untuk mengirimkan data aplikasi yang bukan pesan obrolan. Pengembang menggunakan Envolve untuk menyinkronkan data aplikasi seperti status permainan secara waktu nyata di seluruh penggunanya. Tamplin dan Lee memutuskan untuk memisahkan sistem obrolan dan arsitektur waktu nyata yang menjalankannya. Tamplin dan Lee mendirikan Firebase sebagai perusahaan terpisah pada bulan April 2012.

Firebase Inc. mengumpulkan dana awal pada bulan Mei 2012. Perusahaan ini kemudian meningkatkan pendanaan Seri A pada bulan Juni 2013. Pada bulan Oktober 2014, Firebase diakuisisi oleh Google. Pada bulan Oktober 2015, Google mengakuisisi Divshot untuk menggabungkannya dengan Tim Firebase. Sejak akuisisi, Firebase telah berkembang di Google dan memperluas layanan untuk menjadi platform terpadu bagi pengembang aplikasi. Firebase sekarang terintegrasi dengan berbagai layanan Google lainnya, untuk menawarkan produk dan skala yang lebih luas bagi pengembang aplikasi. Pada bulan Januari 2017, Google mengakuisisi Fabric dan Crashlytics dari Twitter untuk bergabung dengan layanan tersebut ke Tim Firebase. Firebase meluncurkan Cloud Firestore, sebuah database dokumen, pada bulan Oktober 2017.

## Layanan
Layanan Firebase tidak seperti dulu yang memberikan Layanan Percobaan, sekarang dapat memanfaatkan Firebase secara Gratis, tentunya dengan batasan tertentu. Firebase tersedia dalam dua opsi, yaitu: SPARK (Gratis) dan BLAZE (bayar sesuai pemakaian). Anda dapat membandingkan kedua pilihan tersebut melalui https://firebase.google.com/pricing/ .

### Fitur Firebase

#### Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) dulu dikenal sebagai Google Cloud Messaging (GCM), di mana Firebase Cloud Messaging (FCM) dapat mengirim dan menerima pesan lintas platform seperti Android, iOS, dan aplikasi web, yang pada tahun 2016 dapat digunakan tanpa biaya. Firebase Cloud Messaging (FCM), adalah layanan yang diberikan Firebase untuk menggantikan Google Cloud Messaging. Pihak Google menyarankan untuk aplikasi yang masih menggunakan Google Cloud Messaging untuk segera migrasi ke Firebase Cloud Messaging. Fitur-fitur yang diberikan oleh Firebase Cloud Messaging sebenarnya tidak terlalu jauh berbeda dengan Google Cloud Messaging. Dengan Firebase Cloud Messaging kita bisa memberikan pemberitahuan dan membuat komunikasi dua arah antara perangkat. Teknologi yang digunakan terbagi menjadi dua yaitu:

* XMPP (Extensible Messaging and Presence Protocol)
* HTTP (Hypertext Transfer Protocol).
Untuk XMPP harus membangun server XMPP terlebih dahulu, sedangkan untuk HTTP bisa menggunakan console yang disediakan oleh Firebase.

#### Firebase Authentication
Firebase Authentication merupakan layanan sistem otentikasi yang menerapkan kode client-side, sehingga pengguna dapat mendaftar dan login ke aplikasi Facebook, GitHub, Twitter dan Google (Google Play Games). Selain itu, Firebase termasuk sistem manajemen pengguna di mana pengembang dapat mengaktifkan otentikasi pengguna dengan login email dan kata sandi yang disimpan dengan Firebase. Sebagian besar aplikasi perlu mengetahui identitas pengguna. Dengan mengetahui identitas pengguna, aplikasi dapat menyimpan data pengguna secara aman di cloud dan memberikan pengalaman personal yang sama di setiap perangkat pengguna. Firebase Authentication mendukung otentikasi menggunakan sandi, nomor telepon, penyedia identitas gabungan yang populer, seperti Google, Facebook, dan Twitter, dan lain-lain.

#### Firebase Remote Config
Firebase Remote Config merupakan fitur yang memungkinkan digunakan untuk melakukan perubahan konfigurasi di dalam aplikasi Android / iOS, tanpa harus melakukan pembaruan aplikasi di Play Store / App Store. Cara kerja dari Remote Config adalah aplikasi menyimpan terlebih dahulu file XML yang berisi parameter-parameter yang nilainya akan bisa diganti melalui console Firebase. Kemudian objek firebase di dalam aplikasi akan melakukan request data dari server, kemudian memproses data-data tersebut. Secara umum, objek Firebase di dalam aplikasi akan melakukan request 12 jam / 1x, tetapi hal tersebut bisa diubah sesuai yang diinginkan. Salah satu catatan dari Google adalah tidak boleh menggunakan Remote Config untuk melakukan perubahan yang krusial, seperti mengubah izin yang dibutuhkan oleh aplikasi.

#### Firebase Realtime Database
Firebase menyediakan realtime database dan backend sebagai layanan. Layanan ini menyediakan pengembang Antarmuka pemrograman aplikasi yang memungkinkan data aplikasi disinkronkan di seluruh klien dan disimpan di Firebase cloud . Perusahaan menyediakan pustaka klien yang memungkinkan integrasi dengan Android, iOS, JavaScript, Java, Swift dan Node.js aplikasi. Database juga dapat diakses melalui REST API dan mengikat untuk beberapa JavaScript Frameworks seperti AngularJS, React, Ember.js dan Backbone.js. Developer yang menggunakan realtime database dapat mengamankan data dengan menggunakan aturan keamanan yang diberlakukan oleh server perusahaan. Cloud Firestore yang merupakan generasi mendatang dari Firebase Realtime Database dirilis untuk penggunaan beta. Firebase Realtime Database merupakan database yang di-host pada cloud. Data disimpan sebagai JSON dan disinkronkan secara realtime ke setiap klien yang terhubung.

#### Firebase Storage
Firebase Storage dirancang untuk pengembang aplikasi yang perlu menyimpan dan menampilkan konten buatan pengguna, seperti foto atau video dan menambahkan keamanan Google pada unggah dan unduh berkas untuk aplikasi Firebase, bagaimanapun kualitas jaringannya. Pengembang dapat menggunakannya untuk menyimpan gambar, audio, video, atau konten lain yang dibuat pengguna secara langsung dari Firebase SDK Klien. Firebase Storage didukung oleh Google Cloud Storage.

#### Firebase Hosting
Firebase Hosting menyediakan hosting yang cepat dan aman untuk aplikasi web serta konten yang statis dan dinamis. Firebase Hosting adalah layanan hosting web statis dan dinamis yang diluncurkan pada 13 Mei 2014. Mendukung hosting berkas statis seperti CSS, HTML, JavaScript dan berkas lainnya, serta dukungan melalui Cloud Functions. Layanan ini mengirimkan berkas melalui Content Delivery Network (CDN) atau melalui enkripsi HTTP Secure (HTTPS) dan Secure Sockets Layer (SSL). Firebase bermitra dengan Fastly, CDN, untuk menyediakan CDN yang mendukung Firebase Hosting. Perusahaan menyatakan bahwa Firebase Hosting tumbuh dari permintaan pelanggan, pengembang menggunakan Firebase untuk realtime database tetapi membutuhkan tempat untuk meng-host konten mereka.

Dua fitur yang menarik adalah Firebase Remote Config dan Firebase Realtime Database. Secara sederhananya, Remote Config adalah fitur yang memungkinkan pengembang mengganti / mengubah beberapa konfigurasi aplikasi Android / iOS tanpa harus memberikan pembaruan aplikasi melalui Play Store / App Store. Salah satu konfigurasi yang bisa dimanipulasi adalah seperti warna / tema aplikasi. Sedangkan Firebase Realtime Database adalah fitur yang memberikan sebuah NoSQL database yang bisa diakses secara waktu nyata oleh pengguna aplikasi. Dan hebatnya adalah aplikasi bisa menyimpan data secara lokal ketika tidak ada akses internet, kemudian melakukan sinkronisasi data segera setelah mendapatkan akses internet.

### Stabilitas

#### Firebase Crash Reporting
Firebase Crash Reporting digunakan untuk membuat laporan rinci tentang kesalahan dalam aplikasi. Kesalahan dikelompokkan ke dalam kelompok tumpukan pelacakan yang serupa dan diurutkan berdasarkan tingkat keparahan dampaknya pada pengguna aplikasi. Selain laporan otomatis, pengembang dapat membuat log peristiwa khusus untuk membantu menangkap langkah-langkah yang mengarah ke kerusakan. Sebelum mendapatkan Crashlytics, Firebase menggunakan Firebase Crash Reporting sendiri. Firebase Crash Reporting merupakan layanan yang diberikan oleh Firebase untuk keperluan merekam setiap pengecualian yang terjadi pada aplikasi. Report yang diberikan cukup detail dengan beberapa filter seperti yang digunakan pada Analytics. Crash Reporting ini juga dibagi menjadi dua bagian yaitu:
* Non Fatal exception, untuk pengecualian yang tidak berdampak fatal (bisa membuat pengecualian khusus).
* Fatal exception, untuk pengecualian yang fatal (aplikasi crash).

#### Firebase Performance
Firebase Performance memberikan wawasan tentang kinerja aplikasi yang dialami pengguna aplikasi. Firebase Performance adalah layanan yang membantu untuk memperoleh data tentang karakteristik performa aplikasi iOS dan Android. Gunakan Firebase Performance SDK untuk mengumpulkan data performa aplikasi, kemudian tinjau dan analisis data tersebut di Firebase console. Dengan Firebase Performance, dapat memahami di mana dan kapan performa aplikasi dapat ditingkatkan, sehingga dapat menggunakan informasi tersebut untuk memperbaiki masalah performa.

#### Firebase Tes Lab untuk Android dan iOS
Firebase Tes Lab untuk Android dan iOS menyediakan infrastruktur berbasis cloud untuk menguji aplikasi Android dan iOS. Dengan satu operasi, pengembang dapat memulai pengujian aplikasi di berbagai macam perangkat dan konfigurasi perangkat. Hasil pengujian termasuk log, video, dan tangkapan layar, tersedia dalam proyek di Firebase console. Bahkan jika pengembang tidak menulis kode pengujian apa pun untuk aplikasi, Tes Lab dapat menjalankan aplikasi secara otomatis dengan mencari gangguan. Tes Lab untuk iOS saat ini dalam versi beta.

### Grow

#### Firebase Notifications
Firebase Notifications adalah layanan yang memungkinkan pemberitahuan untuk pengguna yang ditargetkan oleh pengembang aplikasi seluler tanpa biaya.

#### Firebase App Indexing
Firebase App Indexing digunakan untuk memasukkan aplikasi ke Google Search. Jika pengguna sudah menginstal aplikasi, pengguna dapat menjalankannya dan dapat langsung membuka konten yang dicari. Firebase App Indexing kembali berinteraksi dengan pengguna aplikasi dengan cara membantu pengguna menemukan konten publik dan pribadi secara langsung di perangkat pengguna. Bahkan, Firebase App Indexing menawarkan kelengkapan otomatis kueri untuk membantu pengguna menemukan sesuatu yang mereka butuhkan dengan lebih cepat. Jika pengguna belum memiliki aplikasi tersebut, kueri yang relevan akan memicu untuk memasang aplikasi dari hasil Google Search. Firebase App Indexing, sebelumnya yaitu Google App Indexing, mendapatkan aplikasi ke Google Search. Penambahan App Indexing untuk mempromosikan kedua jenis hasil aplikasi dalam Google Search dan juga menyediakan kelengkapan otomatis kueri.

#### Firebase Dynamic Links
Firebase Dynamic Links adalah URL cerdas yang secara dinamis mengubah perilaku untuk memberikan pengalaman terbaik di berbagai platform (situs web / iOS / Android) serta tautan dalam ke APP. Dynamic Links berfungsi di semua pemasangan aplikasi: jika pengguna membuka Dynamic Links di iOS atau Android dan aplikasi belum dipasang, pengguna akan diminta untuk memasang aplikasi tersebut terlebih dahulu. Setelah dipasang, aplikasi akan mulai berjalan dan dapat mengakses link.

#### Firebase Invites
Firebase Invites adalah solusi siap pakai untuk berbagi aplikasi melalui email atau SMS. Untuk menyesuaikan pengalaman pengguna invites atau untuk menghasilkan link secara terprogram, gunakan Firebase Dynamic Links.

## Proyek sumber terbuka

### Firepad
Firepad adalah open source kolaborasi editor waktu nyata. Dirilis di bawah Lisensi MIT, Firepad digunakan oleh beberapa editor, termasuk Atlassian Stash Realtime Editor dan Koding.

### Firechat
Firechat adalah aplikasi obrolan waktu nyata. Firechat dirilis di bawah Lisensi MIT.

### GeoFire
GeoFire adalah sumber pustaka terbuka yang memanfaatkan Firebase Realtime Database, yang memungkinkan pengembang aplikasi menyimpan dan menanyakan serangkaian kunci berdasarkan lokasi geografis.

## Referensi

## Pranala luar
*