Firebase

From OnnoWiki
Revision as of 10:49, 16 October 2018 by Rosyanafitria (talk | contribs)
Jump to navigation Jump to search

Template:About Template:Multiple issues

Template:Infobox dot-com company

Firebase adalah suatu layanan dari google untuk mempermudah para pengembang-pengembang aplikasi untuk mengembangkan aplikasinya. Firebase(BaaS ‘Backend as a Service’) ini merupakan solusi yang ditawarkan oleh Google untuk mempermudah pekerjaan Developer. Dengan adanya Firebase, apps developer bisa fokus mengembangkan aplikasi tanpa harus memberikan effort yang besar untuk urusan backend.Dua fitur menarik dari Firebase adalah Firebase Remote Config dan Firebase Real Time Database. Selain itu juga terdapat fitur pendukung untuk aplikasi yang memerlukan push notification yaitu Firebase Notification Console.

Sejarah

Firebase berevolusi dari Envolve, yang sebelumnya didirikan oleh James Tamplin dan Andrew Lee pada 2011. Envolve menyediakan pengembang API yang memungkinkan integrasi fungsi chat online ke situs web mereka. Setelah merilis layanan obrolan, Tamplin dan Lee menemukan bahwa itu digunakan untuk mengirimkan data aplikasi yang bukan pesan obrolan. Pengembang menggunakan Envolve untuk menyinkronkan data aplikasi seperti status game secara real time di seluruh penggunanya. Tamplin dan Lee memutuskan untuk memisahkan sistem obrolan dan arsitektur real-time yang menjalankannya. Mereka mendirikan Firebase sebagai perusahaan terpisah pada bulan April 2012.<ref>Template:Cite web</ref>

Firebase Inc. mengumpulkan dana awal pada bulan Mei 2012. Perusahaan ini kemudian meningkatkan pendanaan Seri A pada Juni 2013. .<ref>Template:Cite web</ref> Pada Oktober 2014, Firebase diakuisisi oleh Google.<ref name="google">Template:Cite web</ref> Pada Oktober 2015, Google mengakuisisi Divshot untuk menggabungkannya dengan tim Firebase. Sejak akuisisi, Firebase telah tumbuh di dalam Google dan memperluas layanannya untuk menjadi platform terpadu bagi pengembang seluler. Firebase sekarang terintegrasi dengan berbagai layanan Google lainnya untuk menawarkan produk dan skala yang lebih luas bagi pengembang. Pada bulan Januari 2017, Google mengakuisisi Fabric dan Crashlytics dariTwitter untuk bergabung dengan layanan tersebut ke tim Firebase.<ref>Template:Cite web</ref><ref>Template:Cite web</ref> Firebase meluncurkan Firestore Cloud , sebuah Basis Data Dokumen, pada bulan Oktober 2017. <ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite news</ref><ref>Template:Cite news</ref>

Layanan

Layanan Firebase tidak seperti dulu yang memberikan Trial Plan, sekarang kita dapat memanfaatkan Firebase secara Gratis! Tentunya dengan batasan tertentu. Firebase tersedia dalam tiga opsi, yaitu: SPARK (Free), FLAME ($25 per bulan), dan BLAZE (bayar sesuai pemakaian). Anda dapat membandingkan ketiga opsi tersebut melalui [[1]] <ref>Template:Cite web</ref>.

package com.modelpaper.mad.it17121002;

import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log;

import java.util.ArrayList;


public class DBHandler extends SQLiteOpenHelper {

   public DBHandler(Context context) {
       super(context, "user_db", null, 1);
   }
   @Override
   public void onCreate(SQLiteDatabase db) {
       String createQuery = "CREATE TABLE "+UserProfile.Users.TABLE_NAME +
               "( "+UserProfile.Users.COL_ID +" INTEGER PRIMARY KEY AUTOINCREMENT ,"+UserProfile.Users.COL_USERNAME+" TEXT UNIQUE," +
               UserProfile.Users.COL_PASSWORD +" TEXT, "+UserProfile.Users.COL_GENDER +" TEXT, "+UserProfile.Users.COL_DOB +" TEXT"+")";
       Log.d("createQuery",createQuery);
       try {
           db.execSQL(createQuery);
       }
       catch (Exception e){
           e.printStackTrace();
           Log.e("Exception",e.getMessage());
       }
   }
   @Override
   public void onUpgrade(SQLiteDatabase db, int i, int i1) {
       String createQuery = "CREATE TABLE "+UserProfile.Users.TABLE_NAME
               +"( "+UserProfile.Users.COL_ID +" INTEGER PRIMARY KEY AUTOINCREMENT ,"
               +UserProfile.Users.COL_USERNAME+" TEXT,"
               + UserProfile.Users.COL_PASSWORD +" TEXT,"
               +UserProfile.Users.COL_GENDER +" TEXT, "
               +UserProfile.Users.COL_DOB+" TEXT"+")";
       Log.d("createQuery",createQuery);
       try {
           db.execSQL(createQuery);
       }
       catch (Exception e){
           e.printStackTrace();
           Log.e("Exception",e.getMessage());
       }


   }
   public boolean addInfo(UserProfile.Users users){
       SQLiteDatabase db = this.getWritableDatabase();
       String insertQuery = "INSERT INTO "+UserProfile.Users.TABLE_NAME
               +"("+UserProfile.Users.COL_USERNAME
               +","+UserProfile.Users.COL_PASSWORD+","
               +UserProfile.Users.COL_GENDER+","
               + UserProfile.Users.COL_DOB+") "
               + "VALUES('"+users.getUsername()
               +"','"+users.getPassword()
               +"','"+users.getGender()
               +"','"+users.getDob()+"')";
       Log.d("insertQuery",insertQuery);
       try {
           db.execSQL(insertQuery);
           return true;
       }
       catch (Exception e){
            e.printStackTrace();
            Log.d("Exception",e.getMessage());
       }
       db.close();
       return false;
   }
   public boolean updateInfor(UserProfile.Users users){
       SQLiteDatabase db = this.getWritableDatabase();
       ContentValues values = new ContentValues();
       String username = users.getUsername();
       String password = users.getPassword();
       String dob = users.getDob();
       String gender = users.getGender();
       int id = users.getId();
       values.put(UserProfile.Users.COL_DOB,dob);
       values.put(UserProfile.Users.COL_GENDER,gender);
       values.put(UserProfile.Users.COL_PASSWORD,password);
       values.put(UserProfile.Users.COL_USERNAME,username);
       int result = db.update(UserProfile.Users.TABLE_NAME,values,
               UserProfile.Users.COL_ID+" = ?"
               ,new String[]{String.valueOf(id)});
       if(result >0)
           return true;
           return false;
   }


   public ArrayList<UserProfile.Users> readAllInfor(){
       ArrayList<UserProfile.Users> userList = new ArrayList<>();
       SQLiteDatabase db = this.getWritableDatabase();
       String readAllQuery = "SELECT * FROM "+UserProfile.Users.TABLE_NAME;
       Cursor cursor = db.rawQuery(readAllQuery,null);
       if(cursor.moveToFirst()){
           do{
               UserProfile.Users users = UserProfile.getProfile().getUser();
               users.setId(Integer.parseInt(cursor.getString(0)));
               users.setUsername(cursor.getString(1));
               users.setPassword(cursor.getString(2));
               users.setGender(cursor.getString(3));
               users.setDob(cursor.getString(4));
               userList.add(users);
           }while (cursor.moveToNext());
       }
       return userList;
   }
   public UserProfile.Users readAllInfor(String userName){
       SQLiteDatabase db = this.getWritableDatabase();
       String readSingleQuery = "SELECT * FROM "+ UserProfile.Users.TABLE_NAME+" WHERE "+ UserProfile.Users.COL_USERNAME + " =  '"+ userName+"'";
       Cursor cursor = db.rawQuery(readSingleQuery,null);
       if(cursor.moveToFirst()){
           UserProfile.Users users = UserProfile.getProfile().getUser();
           users.setId(Integer.parseInt(cursor.getString(0)));
           users.setUsername(cursor.getString(1));
           users.setPassword(cursor.getString(2));
           users.setGender(cursor.getString(3));
           users.setDob(cursor.getString(4));
           return users;
       }
      return null;
   }
   public UserProfile.Users readAllInfor(int id){
       SQLiteDatabase db = this.getWritableDatabase();
       String readSingleQuery = "SELECT * FROM "+ UserProfile.Users.TABLE_NAME+" WHERE "+ UserProfile.Users.COL_ID + " =  '"+ id+"'";
       Cursor cursor = db.rawQuery(readSingleQuery,null);
       if(cursor.moveToFirst()){
           UserProfile.Users users = UserProfile.getProfile().getUser();
           users.setId(Integer.parseInt(cursor.getString(0)));
           users.setUsername(cursor.getString(1));
           users.setPassword(cursor.getString(2));
           users.setGender(cursor.getString(3));
           users.setDob(cursor.getString(4));
           return users;
       }
       return null;
   }


   public void deleteInfo(String username){
       SQLiteDatabase db = this.getWritableDatabase();
       String deleteQuery = "DELETE FROM "+ UserProfile.Users.TABLE_NAME+" WHERE "+ UserProfile.Users.COL_USERNAME +" = '"+ username +"' ";
       Log.d("deleteQuery ",deleteQuery);
       db.execSQL(deleteQuery);
       db.close();
   }


}

Fitur Firebase

Firebase Cloud Messaging

Dulu dikenal sebagai Google Cloud Messaging (GCM), Firebase Cloud Messaging (FCM) dapat mengirim dan menerima pesan lintas platform seperti Android, iOS, danweb application,yang pada tahun 2016 dapat digunakan tanpa menggunakan biaya.<ref>Template:Cite web</ref> Firebase Cloud Messaging / FCM, adalah layanan yang diberikan oleh Firebase untuk menggantikan Google Cloud Messaging (GCM). Pihak Google menyarankan untuk aplikasi yang masih menggunakan GCM untuk segera migrasi ke FCM. Fitur-fitur yang diberikan oleh GCM sebenarnya tidak terlalu jauh berbeda dengan GCM. Dengan FCM kita bisa memberikan push notification dan membuat komunikasi dua arah antara device. Teknologi yang digunakan terbagi menjadi dua :

  • XMPP (Extensible Messaging and Presence Protocol)
  • HTTP (Hypertext Transfer Protocol).

Untuk XMPP kita harus membangun server XMPP terlebih dahulu, sedangkan untuk HTTP kita bisa menggunakan console yang disediakan oleh Firebase. Kita juga bisa mengatur push notification yang ingin kita kirim, contohnya kita hanya ingin mengirimkan notifikasi kepada segmentasi user / audience yang membeli handphone dengan merk ‘A’. Atau kita ingin mengirimkan notifikasi hanya kepada user yang menggunakan aplikasi dengan versi 1.0. Selain itu ada juga fitur untuk mengirimkan notifikasi berdasarkan ‘topic’. Fitur ini mirip dengan ‘user attribute’, tetapi dengan ‘topic’, user bisa melakukan kegiatan ‘subscribe’ dan ‘unsubscribe’. <ref>Template:Cite web</ref>

Firebase Authentication

Firebase Auth merupakan layanan sistem otentikasi yang menerapkan client-side code, sehingga user dapat login ke aplikasi Facebook, GitHub, Twitter dan Google (danGoogle 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.<ref>Template:Cite web</ref>

Firebase Remote Config

Firebase Remote Config adalah fitur yang memungkinkan kita untuk melakukan perubahan konfigurasi di dalam aplikasi Android / iOS, tanpa harus melakukan update aplikasi di Play Store / App Store. Salah satu contohnya adalah ketika hari Natal, kita bisa mengganti tema aplikasi dengan warna merah-putih. Atau ketika hari tahun baru, kita bisa mengganti tema aplikasi dengan warna hijau-silver, dll.

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 me’load data-data tersebut. Secara default, objek firebase di dalam aplikasi akan melakukan request 12 jam / 1x, tetapi kita bisa mengubahnya bila kita inginkan.

Salah satu catatan dari Google adalah kita tidak boleh menggunakan Remote Config untuk melakukan perubahan yang krusial, seperti mengubah permission yang dibutuhkan oleh aplikasi.<ref>Template:Cite web</ref>

Realtime Database

Firebase menyediakan raltime databse dan backend sebagai layanan. Layanan ini menyediakan pengembang aplikasi API yang memungkinkan data aplikasi disinkronkan di seluruh klien dan disimpan di Firebase cloud .<ref>Template:Cite web</ref><ref>Template:Cite web</ref> Perusahaan menyediakan pustaka klien yang memungkinkan integrasi denganAndroid, iOS, JavaScript, Java, Objective-C, Swift and Node.js aplikasi. Database juga dapat diakses melalui REST API dan mengikat untuk beberapa JavaScript frameworks seperti AngularJS, React, Ember.js danBackbone.js.<ref>Template:Cite web</ref> The REST API menggunakan Server-Mengirim Peristiwa protokol, yang merupakan API untuk membuat koneksi HTTP untuk menerima pemberitahuan push dari server. Pengembang yang menggunakan basis data waktu nyata dapat mengamankan data mereka dengan menggunakan aturan keamanan yang diberlakukan oleh sisi server perusahaan.<ref>Template:Cite web</ref>Cloud Firestore yang merupakan generasi mendatang Firebase dari Realtime Database dirilis untuk penggunaan beta.

Firebase Storage

Firebase Storage menyediakan upload dan download file dengan aman untuk aplikasi Firebase, apa pun kualitas jaringannya. Pengembang dapat menggunakannya untuk menyimpan gambar, audio, video, atau konten lain yang dibuat pengguna secara langsung dari Firebase Client SDK. Firebase Storage didukung oleh Google Cloud Storage.<ref>Template:Cite web</ref>

Firebase Hosting

Firebase Hosting adalah [[layanan hosting web] statis dan dinamis yang diluncurkan pada 13 Mei 2014. Mendukung hosting file statis seperti CSS, HTML, JavaScript dan file lainnya, serta dukungan melalui Cloud Functions.<ref>dynamic Node.js support through Cloud Functions</ref> Layanan ini mengirimkan file melalui content delivery network (CDN) 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 database real-time tetapi membutuhkan tempat untuk meng-host konten mereka.<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

Dua fitur yang menarik adalah Firebase Remote Config dan Firebase Real Time Database. Secara sederhananya, Remote Config adalah fitur yang memungkinkan developer mengganti / mengubah beberapa konfigurasi aplikasi Android / iOS tanpa harus memberikan update aplikasi via Play Store / App Store. Salah satu konfigurasi yang bisa dimanipulasi adalah seperti warna / tema aplikasi.

Sedangkan Firebase Real Time Database adalah fitur yang memberikan sebuah NoSQL database yang bisa diakses secara Real Time oleh pengguna aplikasi. Dan hebatnya adalah aplikasi bisa menyimpan data secara lokal ketika tidak ada akses internet, kemudian melakukan sync data segera setelah mendapatkan akses internet.

ML Kit

ML Kit adalah sistem pembelajaran mesin seluler untuk pengembang yang diluncurkan pada 8 Mei 2018 dalam versi beta selama Google I/O 2018.<ref>Template:Cite news</ref> Fitur ML Kit API beragam fitur termasuk pengenalan teks, mendeteksi wajah, memindai barcode, melabeli gambar dan mengenali tengara. Saat ini tersedia untuk iOS atau Android pengembang. Anda juga dapat mengimpor model Lite TensorFlow Anda sendiri, jika API yang diberikan tidak cukup.<ref>Template:Cite web</ref> API dapat digunakan di perangkat atau di cloud.

Stabilitas

Crashlytics

Crash Reporting membuat laporan rinci tentang kesalahan dalam aplikasi. Kesalahan dikelompokkan ke dalam cluster 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.<ref>Template:Cite web</ref> Sebelum mendapatkan Crashlytics, Firebase menggunakan Firebase Crash Reporting sendiri. Firebase Crash Reporting merupakan layanan yang diberikan oleh Firebase untuk keperluan merekam setiap exception yang terjadi pada aplikasi. Report yang diberikan cukup detail dengan beberapa filter seperti yang digunakan pada Analytics.<ref>Template:Cite web</ref> Crash reporting ini juga dibagi menjadi dua bagian :

  • Non Fatal exception, untuk exception yang tidak berdampak fatal (kita bisa membuat custom exception).
  • Fatal exception, untuk exception yang fatal (aplikasi crash).

Performance

Firebase Performance memberikan wawasan tentang kinerja aplikasi dan latensi yang dialami pengguna aplikasi.

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 mereka 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 mereka, Test Lab dapat menjalankan aplikasi secara otomatis, mencari gangguan. Tes Lab untuk iOS saat ini dalam versi beta.<ref>Template:Cite web</ref>

Grow

Firebase Notifikasi

Firebase Notifikasi adalah layanan yang memungkinkan pemberitahuan untuk pengguna yang ditargetkan oleh pengembang aplikasi seluler tanpa biaya.<ref>Template:Cite web</ref>

Pengindeksan Aplikasi Firebase

Pengindeksan Aplikasi Firebase, sebelumnya Pengindeksan Google Aplikasi, mendapatkan aplikasi ke penelusuran Google. penambahan aplikasi indeks untuk mempromosikan kedua jenis hasil aplikasi dalam penelusuran Google dan juga menyediakan kelengkapan otomatis kueri.<ref>Template:Cite web</ref>

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.<ref>Template:Cite web</ref>

Firebase Invites

Firebase Invites adalah solusi lintas platform untuk mengirim undangan email dan SMS yang dipersonalisasi, pengguna on-boarding, dan mengukur dampak dari undangan.<ref>Template:Cite web</ref>

Firebase Remote Config

Firebase Remote Config adalah layanan cloud yang memungkinkan pengembang mengubah perilaku dan tampilan aplikasi mereka tanpa mengharuskan pengguna mengunduh pembaruan aplikasi.<ref>Template:Cite web</ref>

Adwords

Adwords adalah layanan periklanan online Google yang terintegrasi dengan untuk memungkinkan pengembang menargetkan pengguna menggunakan Firebase Analytics

Earn

EarnTemplate:Disambiguation needed ke google admob dan lingkup pemasaran aplikasi.

Admob

Admob adalah produk Google yang terintegrasi dengan pengguna Firebase.

Open source projects

Firepad

Firepad adalah open source editor real-time kolaboratif. Dirilis di bawah Lisensi MIT, Firepad digunakan oleh beberapa editor, termasuk Atlassian Stash Realtime Editor dan Koding.<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

Firechat

Firechat adalah aplikasi obrolan realtime open source. Ini dirilis di bawah Lisensi MIT.<ref>Template:Cite web</ref>

GeoFire

GeoFire adalah pustaka sumber terbuka yang memanfaatkan basis data waktu nyata Firebase, yang memungkinkan pengembang aplikasi menyimpan dan menanyakan serangkaian kunci berdasarkan lokasi geografis.<ref>Template:Cite web</ref>

External links

Template:Google Inc.