Firebase

**Firebase** ialah platform pembangunan aplikasi mudah alih dan web yang dibangunkan oleh Firebase, Inc. pada tahun 2011, yang kemudiannya diperoleh oleh Google pada tahun 2014. Sehingga Oktober 2018, platform Firebase mempunyai 18 produk yang digunakan oleh 1.5 juta aplikasi.

## Sejarah
Firebase berkembang dari Envolve, permulaan yang awal yang diasaskan oleh James Tamplin dan Andrew Lee pada 2011. Envolve menyediakan pemaju API yang membolehkan penyepaduan fungsi sembang dalam talian ke laman web mereka. Selepas melepaskan perkhidmatan sembang, Tamplin dan Lee mendapati bahawa ia sedang digunakan untuk meluluskan data aplikasi yang bukan mesej sembang. Pemaju telah menggunakan Envolve untuk menyegerakkan data aplikasi seperti keadaan permainan dalam masa nyata di seluruh pengguna mereka. Tamplin dan Lee memutuskan untuk memisahkan sistem sembang dan seni bina masa nyata yang menguasainya. Mereka mewujudkan Firebase sebagai sebuah syarikat yang berasingan pada April 2012.

Firebase Inc. menaikkan pembiayaan modal benih pada Mei 2012. Syarikat terus meningkatkan pembiayaan Siri A pada Jun 2013. Pada Oktober 2014, Firebase diperolehi oleh Google. Pada Oktober 2015, Google memperoleh Divshot untuk menggabungkannya dengan pasukan Firebase. Sejak pengambilalihan, Firebase telah berkembang di dalam Google dan mengembangkan perkhidmatan mereka untuk menjadi platform bersatu untuk pemaju mudah alih. Firebase kini diintegrasikan dengan pelbagai perkhidmatan Google yang lain untuk menawarkan produk dan skala yang lebih luas untuk pemaju. Pada Januari 2017, Google memperoleh Fabric dan Crashlytics dari Twitter untuk menyertai perkhidmatan tersebut kepada pasukan Firebase. Firebase melancarkan Cloud Firestore, Dokumen Pangkalan Data, pada Oktober 2017.

## Perkhidmatan
Perkhidmatan Firebase tidak seperti yang digunakan untuk menyediakan Perkhidmatan Percubaan, sekarang anda boleh menggunakan Firebase secara gratis, tentu saja dengan keterbatasan tertentu. Firebase boleh didapati dalam tiga pilihan, iaitu: SPARK (Percuma), FLAME ($ 25 sebulan), dan BLAZE (bayar mengikut penggunaan). Anda boleh membandingkan tiga pilihan melalui https://firebase.google.com/pricing/ .

### Ciri-ciri Firebase

#### Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) dulu dikenal sebagai Google Cloud Messaging (GCM), dimana 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 dimana 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 adalah 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 ijin 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, bagaimana pun 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.

### Kestabilan

#### Firebase Crash Reporting
Pelaporan Kerosakan Firebase digunakan untuk membuat laporan terperinci mengenai kesilapan dalam aplikasi. Kesalahan dikelompokkan ke dalam kumpulan tindanan pengesanan yang sama dan disusun oleh keterukan impak pada pengguna aplikasi. Selain laporan automatik, pemaju boleh membuat log acara khas untuk membantu menangkap langkah-langkah yang membawa kepada kerosakan. Sebelum mendapat Crashlytics, Firebase menggunakan Crash Firebase Melaporkan sendiri. Pelaporan Kerosakan Firebase adalah perkhidmatan yang disediakan oleh Firebase untuk tujuan merakam setiap pengecualian yang berlaku dalam permohonan. Laporan yang disediakan agak terperinci dengan beberapa penapis seperti yang digunakan dalam Analitis. Laporan Kemalangan juga dibahagikan kepada dua bahagian, iaitu:

* Pengecualian Bukan Fatal, untuk pengecualian yang tidak mempunyai kesan maut (boleh membuat pengecualian khas).
* Pengecualian fatal, untuk pengecualian maut (kemalangan aplikasi).

#### Firebase Performance
Prestasi Firebase memberikan wawasan ke atas prestasi aplikasi yang dialami pengguna aplikasi. Performance Firebase adalah perkhidmatan yang membantu untuk mendapatkan data tentang ciri prestasi aplikasi iOS dan Android. Gunakan SDK Prestasi Firebase untuk mengumpul data prestasi aplikasi, kemudian semak dan analisis data tersebut di konsol Firebase. Dengan Firebase Performance, dapat memahami di mana dan pada bila-bila prestasi aplikasi dapat ditingkatkan, sehingga dapat menggunakan maklumat tersebut untuk memperbaiki masalah prestasi.

#### Firebase Test Lab untuk Android dan iOS
Makmal Ujian Firebase untuk Android dan iOS menyediakan infrastruktur berasaskan awan untuk menguji aplikasi Android dan iOS. Dengan satu operasi, pemaju boleh mula menguji aplikasi pada pelbagai peranti dan konfigurasi peranti. Hasil ujian termasuk log, video dan tangkapan skrin boleh didapati pada projek-projek di konsol Firebase. Walaupun pemaju tidak menulis sebarang kod ujian untuk permohonan itu, Ujian Lab boleh menjalankan aplikasi secara automatik dengan mencari gangguan. Ujian makmal untuk iOS kini dalam versi beta.

### Pertumbuhan

#### Firebase Notifications
Firebase Notifications ialah perkhidmatan yang membolehkan pemberitahuan untuk pengguna yang disasarkan oleh pemaju aplikasi mudah alih tanpa sebarang kos.

#### Firebase App Indexing
Pengindeksan Aplikasi Firebase digunakan untuk memasuki aplikasi ke dalam Carian Google. Sekiranya pengguna telah memasang aplikasi itu, pengguna boleh menjalankannya dan dengan serta-merta boleh membuka kandungan yang boleh dicari. Pengindeksan Aplikasi Firebase sekali lagi berinteraksi dengan pengguna aplikasi dengan membantu pengguna mencari kandungan awam dan persendirian terus pada peranti pengguna. Malah, Pengindeksan Aplikasi Firebase menawarkan kesempurnaan pertanyaan untuk membantu pengguna mencari sesuatu yang mereka perlukan dengan lebih cepat. Sekiranya pengguna tidak mempunyai aplikasi itu, pertanyaan yang berkaitan akan mencetuskan untuk memasang aplikasi dari hasil Carian Google. Pengindeksan Aplikasi Firebase, sebelum Pengindeksan App Google, mendapat aplikasi ke Carian Google. Menambah Pengindeksan Aplikasi untuk mempromosikan kedua-dua jenis hasil aplikasi dalam Carian Google dan juga menyediakan pertanyaan auto-lengkap.

#### Firebase Dynamic Links
Pautan Dinamik Firebase adalah URL pintar yang mengubah tingkah laku secara dinamik untuk memberikan pengalaman terbaik di pelbagai platform (laman web/iOS/Android) dan pautan mendalam ke APP. Fungsi Pautan Dinamik dalam semua pemasangan aplikasi: jika pengguna membuka Pautan Dinamik pada iOS atau Android dan permohonan itu belum dipasang, pengguna akan diminta untuk memasang aplikasi terlebih dahulu. Setelah dipasang, aplikasi akan mula berjalan dan boleh mengakses pautan.

#### Firebase Invites
Firebase Invites adalah penyelesaian siap untuk berkongsi aplikasi melalui e-mel atau SMS. Untuk melaraskan pengalaman pengguna jemputan atau pautan diprogram, gunakan Pautan Dinamik Firebase.

## Projek sumber terbuka

### Firepad
Firepad ialah penyunting kerjasama sumber terbuka masa sebenar. Dikeluarkan di bawah Lesen MIT, Firepad digunakan oleh beberapa editor, termasuk Editor Realtime Atlassian Stash dan Coding.

### Firechat
Firechat ialah aplikasi sembang masa sebenar. Firechat dikeluarkan di bawah Lesen MIT.

### GeoFire
GeoFire ialah perpustakaan sumber terbuka yang menggunakan Pangkalan Data Realtime Firebase, yang membolehkan pemaju aplikasi menyimpan dan meminta beberapa kunci berdasarkan lokasi geografi.

## Rujukan

## Pautan luar
*