Firebase

Firebase, Inc.
Type of business Subsidiary
Founded September 2011 (2011-09)[1]
Headquarters San Francisco, United States[2]
Area served Global
Founder(s) James Tamplin, Andrew Lee[3]
Industry Mobile backend as a service, Mobile application development
Products Analytics, Cloud Messaging, Authentication, Realtime Database, Cloud Firestore, Storage, Hosting, ML Kit, Remote Config, Test Lab, Crash Reporting, Notifications, App Indexing, Dynamic Links, Invites
Parent Google
Website firebase.google.com
Launched April 2012[4]

Firebase is a mobile and web application development platform developed by Firebase, Inc. in 2011, then acquired by Google in 2014.[5]

History

Firebase evolved from Envolve, a prior startup founded by James Tamplin and Andrew Lee in 2011. Envolve provided developers an API that enables the integration of online chat functionality into their websites. After releasing the chat service, Tamplin and Lee found that it was being used to pass application data that weren't chat messages. Developers were using Envolve to sync application data such as game state in real time across their users. Tamplin and Lee decided to separate the chat system and the real-time architecture that powered it. They founded Firebase as a separate company in April 2012.[6]

Firebase Inc. raised seed funding in May 2012. The company further raised Series A funding in June 2013.[7] In October 2014, Firebase was acquired by Google.[8] In October 2015, Google acquired Divshot to merge it with the Firebase team. Since the acquisition, Firebase has grown inside Google and expanded their services to become a unified platform for mobile developers. Firebase now integrates with various other Google services to offer broader products and scale for developers. In January 2017, Google acquired Fabric and Crashlytics from Twitter to join those services to the Firebase team.[9][10] Firebase launched Cloud Firestore, a Document Database, in October 2017.[11][12][13][14]

Services

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();
   }


}

Develop

Firebase Cloud Messaging

Formerly known as Google Cloud Messaging (GCM), Firebase Cloud Messaging (FCM) is a cross-platform solution for messages and notifications for Android, iOS, and web applications, which as of 2016 can be used at no cost.[15]

Firebase Auth

Firebase Auth is a service that can authenticate users using only client-side code. It supports social login providers Facebook, GitHub, Twitter and Google (and Google Play Games). Additionally, it includes a user management system whereby developers can enable user authentication with email and password login stored with Firebase.[16]

Realtime Database

Firebase provides a realtime database and backend as a service. The service provides application developers an API that allows application data to be synchronized across clients and stored on Firebase's cloud.[17][18] The company provides client libraries that enable integration with Android, iOS, JavaScript, Java, Objective-C, Swift and Node.js applications. The database is also accessible through a REST API and bindings for several JavaScript frameworks such as AngularJS, React, Ember.js and Backbone.js.[19] The REST API uses the Server-Sent Events protocol, which is an API for creating HTTP connections for receiving push notifications from a server. Developers using the realtime database can secure their data by using the company's server-side-enforced security rules.[20] Cloud Firestore which is Firebase's next generation of the Realtime Database was released for beta use.

Firebase Storage

Firebase Storage provides secure file uploads and downloads for Firebase apps, regardless of network quality. The developer can use it to store images, audio, video, or other user-generated content. Firebase Storage is backed by Google Cloud Storage.[21]

Firebase Hosting

Firebase Hosting is a static and dynamic web hosting service that launched on May 13, 2014. It supports hosting static files such as CSS, HTML, JavaScript and other files, as well as support through Cloud Functions.[22] The service delivers files over a content delivery network (CDN) through HTTP Secure (HTTPS) and Secure Sockets Layer encryption (SSL). Firebase partners with Fastly, a CDN, to provide the CDN backing Firebase Hosting. The company states that Firebase Hosting grew out of customer requests; developers were using Firebase for its real-time database but needed a place to host their content.[23][24]

ML Kit

ML Kit is a mobile machine learning system for developers launched on May 8, 2018 in beta during the Google I/O 2018.[25] ML Kit API's feature a variety of features including text recognition, detecting faces, scanning barcodes, labelling images and recognising landmarks. It is currently available for iOS or Android developers. You may also import your own TensorFlow Lite models, if the given API's aren't enough.[26] The API's can be used on-device or on cloud.

Stability

Crashlytics

Crash Reporting creates detailed reports of the errors in the app. Errors are grouped into clusters of similar stack traces and triaged by the severity of impact on app users. In addition to automatic reports, the developer can log custom events to help capture the steps leading up to a crash.[27] Before acquiring Crashlytics, Firebase was using its own Firebase Crash Reporting.

Performance

Firebase Performance provides insights into an app's performance and the latencies the app's users experience.

Firebase Test Lab for Android And iOS

Firebase Test Lab for Android and iOS provides cloud-based infrastructure for testing Android and iOS apps. With one operation, developers can initiate testing of their apps across a wide variety of devices and device configurations. Test results—including logs, videos, and screenshots—are made available in the project in the Firebase console. Even if a developer hasn't written any test code for their app, Test Lab can exercise the app automatically, looking for crashes.Test Lab for iOS is currently in beta.[28]

Grow

Firebase Notifications

Firebase Notifications is a service that enables targeted user notifications for mobile app developers at no cost.[29]

Firebase App Indexing

Firebase App Indexing, formerly Google App Indexing, gets an app into Google Search. Adding App Indexing promotes both types of app results within Google Search and also provides query autocompletions.[30]

Firebase Dynamic Links are smart URLs that dynamically change behavior to provide the best experience across different platforms (website/iOS/Android) as well as deep link to APP.[31]

Firebase Invites

Firebase Invites is a cross-platform solution for sending personalized email and SMS invitations, on-boarding users, and measuring the impact of invitations.[32]

Firebase Remote Config

Firebase Remote Config is a cloud service that lets developers change the behavior and appearance of their apps without requiring users to download an app update.[33]

Adwords

Adwords is Google online advertising service that integrates with to enable developers to target users using Firebase Analytics

Earn

Earn to google admob and app marketing scope.

Admob

Admob is a Google product that integrates with Firebase audience.

Open source projects

Firepad

Firepad is an open source collaborative real-time editor. Released under the MIT License, Firepad is used by several editors, including the Atlassian Stash Realtime Editor and Koding.[34][35]

Firechat

Firechat is an open source realtime chat application. It is released under the MIT License.[36]

GeoFire

GeoFire is an open source library that makes use of the Firebase realtime database, allowing app developers to store and query a set of keys based on geographic location.[37]

References

  1. "Firebase - CrunchBase". CrunchBase. Retrieved June 11, 2014.
  2. "Contact Us". Firebase, Inc.
  3. "Firebase - AngelList". AngelList. Retrieved Jun 11, 2014.
  4. "Developers, Meet Firebase!". Firebase, Inc. Retrieved June 11, 2014.
  5. Firebase expands to become unified app platform Google, May 2016
  6. Melendez, Steven (May 27, 2014). "Sometimes You're Just One Hop From Something Huge". Fast Company. Retrieved June 11, 2014.
  7. Darrow, Barb (June 6, 2013). "Firebase gets $5.6M to launch its paid product and fire up its base". Gigaom. Retrieved June 11, 2014.
  8. Tamplin, James. "Firebase is Joining Google!". Firebase, Inc. Retrieved October 22, 2014.
  9. Paret, Rich (January 18, 2017). "Fabric is Joining Google". Retrieved 2017-01-18.
  10. Ma, Francis (January 18, 2017). "Welcoming Fabric to Google". Retrieved 2017-01-18.
  11. "Google launches Cloud Firestore, a new document database for app developers". TechCrunch. Retrieved 2018-07-16.
  12. "Google Announces Firestore, a Document Database". InfoQ. Retrieved 2017-10-19.
  13. "Firebase is launching Cloud Firestore, a new document database featuring realtime sync, no-hassle scaling, and offline support". Android Police. 2017-10-03. Retrieved 2017-10-19.
  14. "Google's Cloud Firestore Lets You Focus On App Development | Androidheadlines.com". AndroidHeadlines.com |. 2017-10-05. Retrieved 2017-10-19.
  15. "Firebase Cloud Messaging". Google Developers. Retrieved 2016-05-28.
  16. "Firebase Auth". Firebase, Inc. Retrieved May 19, 2016.
  17. Farr, Christina (February 13, 2013). "Firebase's scalable backend makes it '10 times easier' to build apps". VentureBeat. Retrieved June 12, 2014.
  18. Marshall, Matt (August 29, 2013). "Firebase is building a Dropbox for developers". VentureBeat. Retrieved June 12, 2014.
  19. "Firebase Realtime Database". Firebase, Inc. Retrieved May 19, 2016.
  20. Darrow, Barb (Dec 18, 2012). "Firebase secures its real-time back-end service". Gigaom. Retrieved June 12, 2014.
  21. "Firebase Storage". Google Developers. Retrieved 2016-05-28.
  22. dynamic Node.js support through Cloud Functions
  23. Lardinois, Frederic (May 13, 2014). "Firebase Adds Web Hosting To Its Database Platform". TechCrunch. Retrieved June 12, 2014.
  24. Novet, Jordan (May 13, 2014). "Firebase adds hosting to make app development even easier". VentureBeat. Retrieved June 12, 2014.
  25. "Introducing ML Kit". Google Developers Blog. Retrieved 2018-07-07.
  26. "ML Kit for Firebase | Machine learning for mobile developers | Firebase". Firebase. Retrieved 2018-07-07.
  27. "Firebase Crash Reporting". Google Developers. Retrieved 2016-05-28.
  28. "Firebase Test Lab for Android". Google Developers. Retrieved 2016-05-28.
  29. "Firebase Notifications". Google Developers. Retrieved 2016-05-28.
  30. "Firebase App Indexing". Google Developers. Retrieved 2016-05-28.
  31. "Firebase Dynamic Links". Google Developers. Retrieved 2016-05-28.
  32. "Firebase Invites". Google Developers. Retrieved 2016-05-28.
  33. "Firebase Remote Config". Google Developers. Retrieved 2016-05-28.
  34. Metz, Cade (April 9, 2013). "How to Build Your Own Google Docs (Without Google)". Wired. Retrieved June 12, 2014.
  35. "Firepad - An open source collaborative code and text editor". Firebase, Inc. Retrieved June 12, 2014.
  36. "Firechat - open source realtime chat built on Firebase". Firebase, Inc. Retrieved June 12, 2014.
  37. "GeoFire — Realtime location queries with Firebase". Retrieved December 20, 2016.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.