Firebase
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.
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
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 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>
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>
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.
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>
References
"Firebase - CrunchBase". CrunchBase. Retrieved June 11, 2014.