SlideShare a Scribd company logo
C2 General
Firebase
Sumit Sahoo
C2 General
TheOrigin
§ 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 were not 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 September
2011 and it launched to the public in April 2012.
C2 General
1st Product
§ Firebase's first product was the Firebase Real-time
Database, an API that synchronizes application data
across iOS, Android, and Web devices, and stores it on
Firebase's cloud. The product assists software developers
in building real-time, collaborative applications.
§ In 2014, Firebase launched two products. Firebase
Hosting and Firebase Authentication. This positioned the
company as a mobile backend as a service.
C2 General
C2 General
WhatisFirebase?
Because of the way Firebase products work, some people might call Firebase a “platform as a service” or a
“backend as a service”.
But it actually is a toolset to “build, improve, and grow your app”, and the tools it gives you cover a large
portion of the services that developers would normally have to build themselves, but don’t really want to
build, because they’d rather be focusing on the app experience itself.This includes things like analytics,
authentication, databases, configuration, file storage, push messaging, and the list goes on.
The services are hosted in the cloud, and scale with little to no effort on the part of the developer.
C2 General
Whatsortof
appsisFirebase
goodfor?
§ There’s really no limit to the types of apps that can be
helped by Firebase products. There are only limits to the
platforms it can be used on. iOS and Android are the
primary targets for the Firebase SDKs, and there’s
increasing support for Web, Flutter, Unity, and C++.
§ You should also know there’s an SDK available for a
variety of languages, to be used with any backend
components you might require.
C2 General
C2 General
BuildaProduct
Authentication — user
login and identity
Realtime Database —
realtime, cloud hosted,
NoSQL database
Cloud Firestore —
realtime, cloud hosted,
NoSQL database
Cloud Storage —
massively scalable file
storage
Cloud Functions —
“serverless”, event
driven backend
Firebase Hosting —
global web hosting
ML Kit — SDK for
common ML tasks
C2 General
RealtimeDatabase
§ What’s really special about these databases is that
they give you “realtime” updates to data as it
changes in the database.
§ You use the client SDK to set up a “listener” at the
location of the data your app wants to use, and the
listener gets invoked with that data repeatedly,
every time a change is observed.
§ This lets you keep your app’s display fresh, without
having to poll the data of interest.
C2 General
CloudFunctions
§ Using the Firebase SDKs for Cloud Functions, you can
write and deploy code, running on Google “serverless”
infrastructure, that automatically responds to events
coming from other Firebase products.
§ When people say “serverless”, they don’t suggest a lack
of servers. With a serverless backend architecture, there
are still servers in play, you just don’t have to know much
about them. You don’t provision, maintain, scale, or do
any of the devops required in a traditional (or “serverful”,
my word) architecture. You just write and deploy code,
and Google does the rest.
C2 General
MLKit
§ ML Kit makes it easy to apply ML techniques in your
apps by bringing Google's ML technologies, such as
the Google Cloud Vision API, TensorFlow Lite, and
the Android Neural Networks API together in a
single SDK. Whether you need the power of cloud-
based processing, the real-time capabilities of
mobile-optimized on-device models, or the
flexibility of custom TensorFlow Lite models, ML Kit
makes it possible with just a few lines of code.
C2 General
ImproveyourProduct
Test Lab — scalable and automated app testing on cloud-hosted
devices
Crashlytics — get clear, actionable insight into your app’s crashes
Performance Monitoring — gain insight into your app’s performance
issues
C2 General
GrowyourProduct
Analytics — understand
your users, and how they
use your app
Predictions — apply
machine learning to
analytics to predict user
behavior
Cloud Messaging — send
messages and notifications
to users
Remote Config —
customize your app without
deploying a new version;
monitor the changes
A/B Testing — run
marketing and usability
experiments to see what
works best
Dynamic Links — enable
native app conversions, user
sharing, and marketing
campaigns
App Indexing — re-engage
users with Google Search
integration
In-App Messaging —
engage your active users
with targeted messages
C2 General
Analytics
§ Google Analytics for Firebase is the core of the “grow”
offering. If you need to better know your users, and how
they make use of your app, Analytics can show you that.
§ When you publish an app for the first time, you might
have an idea who your user base is going to be, where
they live, and how they might use your app.
§ The only way to know for sure is to collect data, and that’s
where Analytics helps.
C2 General
RemoteConfig
§ Firebase Remote Config lets you make dynamic changes
to your app’s behavior and appearance without having to
publish an update to your app.
§ The general idea with Remote Config is that you define a
bunch of configuration parameters in the Firebase
console. Then, your app uses an SDK to periodically fetch
those values and make use of them as required.
§ You can think of Remote Config as kind of like a giant set
of cloud-hosted key/value pairs. This may sound like a
simple database, but there’s far more you can do with it
than you might initially imagine.
C2 General
DynamicLinks
§ Firebase Dynamic Links builds on the existing concept of a
“deep link” that launches your app to a particular screen or
customized experience.
§ Deep links work great if the user already has your app
installed, but they don’t work well at all if they have to go
install it first.
§ Dynamic links improves on this by surviving the app
installation process. When the user clicks a dynamic link, and
the app isn’t already installed, they’re directed to the
appropriate app marketplace to install it. Then, when the
user launches the app for the first time, the context of the
link is retained, and the app can start with the experience
that you originally intended.
C2 General
FirebaseTLDR;
Firebase is Google’s mobile and web application development platform.
You’re going to save a ton of time and money using Firebase products rather than
trying to build them yourself.
You can use all of it, or none of it, or just the bits you want.
All those bits are designed to work well together, managed in one console.
C2 General
FirebasevsGCP
§ A Firebase project is also a GCP project.
§ An existing GCP project can be configured to add Firebase services.
§ Firebase adds SDKs, tools, and configurations to some Google Cloud
products.
§ E.g. Cloud Storage, Cloud Firestore, Cloud Functions
§ In some cases, the Firebase console actually delegates to the Cloud
console in order to handle some common tasks, such as billing
management and administrative user management (known
as Identity and Access Management, or IAM in the Cloud console).
§ If you delete the project using either Firebase or the Cloud console,
you will delete everything in that container, no matter where it was
configured or created.
C2 General
Questions?
C2 General
References
§ A medium story by Doug Stevenson :
https://medium.com/firebase-developers/what-is-
firebase-the-complete-story-abridged-bcc730c5f2c0
§ YouTube Firebase Channel :
https://www.youtube.com/user/Firebase
C2 General
ThankYou!

More Related Content

Firebase in a Nutshell

  • 2. C2 General TheOrigin § 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 were not 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 September 2011 and it launched to the public in April 2012.
  • 3. C2 General 1st Product § Firebase's first product was the Firebase Real-time Database, an API that synchronizes application data across iOS, Android, and Web devices, and stores it on Firebase's cloud. The product assists software developers in building real-time, collaborative applications. § In 2014, Firebase launched two products. Firebase Hosting and Firebase Authentication. This positioned the company as a mobile backend as a service.
  • 5. C2 General WhatisFirebase? Because of the way Firebase products work, some people might call Firebase a “platform as a service” or a “backend as a service”. But it actually is a toolset to “build, improve, and grow your app”, and the tools it gives you cover a large portion of the services that developers would normally have to build themselves, but don’t really want to build, because they’d rather be focusing on the app experience itself.This includes things like analytics, authentication, databases, configuration, file storage, push messaging, and the list goes on. The services are hosted in the cloud, and scale with little to no effort on the part of the developer.
  • 6. C2 General Whatsortof appsisFirebase goodfor? § There’s really no limit to the types of apps that can be helped by Firebase products. There are only limits to the platforms it can be used on. iOS and Android are the primary targets for the Firebase SDKs, and there’s increasing support for Web, Flutter, Unity, and C++. § You should also know there’s an SDK available for a variety of languages, to be used with any backend components you might require.
  • 8. C2 General BuildaProduct Authentication — user login and identity Realtime Database — realtime, cloud hosted, NoSQL database Cloud Firestore — realtime, cloud hosted, NoSQL database Cloud Storage — massively scalable file storage Cloud Functions — “serverless”, event driven backend Firebase Hosting — global web hosting ML Kit — SDK for common ML tasks
  • 9. C2 General RealtimeDatabase § What’s really special about these databases is that they give you “realtime” updates to data as it changes in the database. § You use the client SDK to set up a “listener” at the location of the data your app wants to use, and the listener gets invoked with that data repeatedly, every time a change is observed. § This lets you keep your app’s display fresh, without having to poll the data of interest.
  • 10. C2 General CloudFunctions § Using the Firebase SDKs for Cloud Functions, you can write and deploy code, running on Google “serverless” infrastructure, that automatically responds to events coming from other Firebase products. § When people say “serverless”, they don’t suggest a lack of servers. With a serverless backend architecture, there are still servers in play, you just don’t have to know much about them. You don’t provision, maintain, scale, or do any of the devops required in a traditional (or “serverful”, my word) architecture. You just write and deploy code, and Google does the rest.
  • 11. C2 General MLKit § ML Kit makes it easy to apply ML techniques in your apps by bringing Google's ML technologies, such as the Google Cloud Vision API, TensorFlow Lite, and the Android Neural Networks API together in a single SDK. Whether you need the power of cloud- based processing, the real-time capabilities of mobile-optimized on-device models, or the flexibility of custom TensorFlow Lite models, ML Kit makes it possible with just a few lines of code.
  • 12. C2 General ImproveyourProduct Test Lab — scalable and automated app testing on cloud-hosted devices Crashlytics — get clear, actionable insight into your app’s crashes Performance Monitoring — gain insight into your app’s performance issues
  • 13. C2 General GrowyourProduct Analytics — understand your users, and how they use your app Predictions — apply machine learning to analytics to predict user behavior Cloud Messaging — send messages and notifications to users Remote Config — customize your app without deploying a new version; monitor the changes A/B Testing — run marketing and usability experiments to see what works best Dynamic Links — enable native app conversions, user sharing, and marketing campaigns App Indexing — re-engage users with Google Search integration In-App Messaging — engage your active users with targeted messages
  • 14. C2 General Analytics § Google Analytics for Firebase is the core of the “grow” offering. If you need to better know your users, and how they make use of your app, Analytics can show you that. § When you publish an app for the first time, you might have an idea who your user base is going to be, where they live, and how they might use your app. § The only way to know for sure is to collect data, and that’s where Analytics helps.
  • 15. C2 General RemoteConfig § Firebase Remote Config lets you make dynamic changes to your app’s behavior and appearance without having to publish an update to your app. § The general idea with Remote Config is that you define a bunch of configuration parameters in the Firebase console. Then, your app uses an SDK to periodically fetch those values and make use of them as required. § You can think of Remote Config as kind of like a giant set of cloud-hosted key/value pairs. This may sound like a simple database, but there’s far more you can do with it than you might initially imagine.
  • 16. C2 General DynamicLinks § Firebase Dynamic Links builds on the existing concept of a “deep link” that launches your app to a particular screen or customized experience. § Deep links work great if the user already has your app installed, but they don’t work well at all if they have to go install it first. § Dynamic links improves on this by surviving the app installation process. When the user clicks a dynamic link, and the app isn’t already installed, they’re directed to the appropriate app marketplace to install it. Then, when the user launches the app for the first time, the context of the link is retained, and the app can start with the experience that you originally intended.
  • 17. C2 General FirebaseTLDR; Firebase is Google’s mobile and web application development platform. You’re going to save a ton of time and money using Firebase products rather than trying to build them yourself. You can use all of it, or none of it, or just the bits you want. All those bits are designed to work well together, managed in one console.
  • 18. C2 General FirebasevsGCP § A Firebase project is also a GCP project. § An existing GCP project can be configured to add Firebase services. § Firebase adds SDKs, tools, and configurations to some Google Cloud products. § E.g. Cloud Storage, Cloud Firestore, Cloud Functions § In some cases, the Firebase console actually delegates to the Cloud console in order to handle some common tasks, such as billing management and administrative user management (known as Identity and Access Management, or IAM in the Cloud console). § If you delete the project using either Firebase or the Cloud console, you will delete everything in that container, no matter where it was configured or created.
  • 20. C2 General References § A medium story by Doug Stevenson : https://medium.com/firebase-developers/what-is- firebase-the-complete-story-abridged-bcc730c5f2c0 § YouTube Firebase Channel : https://www.youtube.com/user/Firebase