Top Banner
Sittiphol Phanvilai GDE Android CEO, Cheese Factory #FirebaseDevDay Keynote Firebase Dev Day Sittiphol Phanvilai Android GDE CEO & Founder, The Cheese Factory Co., Ltd.
82

Firebase Dev Day Bangkok: Keynote

Apr 09, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Firebase Dev Day Bangkok: Keynote

Sittiphol PhanvilaiGDE AndroidCEO, Cheese Factory #FirebaseDevDay

KeynoteFirebase Dev Day

Sittiphol PhanvilaiAndroid GDECEO & Founder,The Cheese Factory Co., Ltd.

Page 2: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

“ Firebase Dev Day ,,Welcome to

Page 3: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 4: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

What is Firebase?

Page 5: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Let’s start withan user’s behavior

nowadays

Page 6: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

“Web-then-App ”

Page 7: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 8: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 9: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

ServerAndroid iOS

Page 10: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Setting up Server• Create Server Instances• Set up Scalable Server Stack• Set up Deployment Method• Set up an Auto-scaling• Set up an Automated Backups• Install Cert to enable HTTPS• etc.

Page 11: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Implementing Server Side Code• Develop Web Site• Develop APIs to Interface with Mobile

App• Make them secure

Page 12: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

ServerAndroid iOS

Page 13: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Time to Market

Page 14: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 15: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Setting up Server• Create Server Instances• Set up Scalable Server Stack• Set up Deployment Method• Set up an Auto-scaling• Set up an Automated Backups• Install Cert to enable HTTPS• etc.

Page 16: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Implementing Server Side Code• Develop Web Site• Develop APIs for Mobile App• Make them secure

Page 17: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

ServerAndroid iOS

Page 18: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Backend-as-a-Service

(BaaS)

Page 19: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

Android iOS

Database

Hosting

Storage

Authentication

REST REST

Page 20: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

Android iOS

Database

Hosting

Storage

Authentication

SDK forAndroid

SDK foriOS

Page 21: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Firebase is hosted onGoogle Cloud Architecture.

Page 22: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Setting up Server• Create Server Instances• Set up Scalable Server Stack• Set up Deployment Method• Set up an Auto-scaling• Set up an Automated Backups• Install Cert to enable HTTPS• etc.

Page 23: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Implementing Server Side Code• Develop Web Site• Develop APIs to Interface with Mobile

App• Make them secure

Page 24: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

Android iOS

Database

Hosting

Storage

Authentication

SDK forAndroid

SDK foriOS

Page 25: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

With Firebase• Compacted Size Development Team• Fast Product Delivering• Reduced Budget• Scalable

Page 26: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Architecture

Android iOS

Database

Hosting

Storage

Authentication

SDK forAndroid

SDK foriOS

Page 27: Firebase Dev Day Bangkok: Keynote
Page 28: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

IoT

Page 29: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

IoT

Database

Hosting

Storage

Authentication

Page 30: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 31: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

“Developer’s Good Friend”

Page 32: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud MessagingRemote Config

App Quality ServicesTest Lab for AndroidCrash Reporting

AcquisitionDynamic LinksInvitesAdWords

Re-EngagementNotificationsApp Indexing

In-app AdsAdMob

Analytics

Page 33: Firebase Dev Day Bangkok: Keynote
Page 34: Firebase Dev Day Bangkok: Keynote
Page 35: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 36: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Authentication• Register / Login with

• Email + Password• Google• Facebook• Twitter• GitHub

• Email address verification• Password reset

Page 37: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Authentication

var auth = firebase.auth()

Page 38: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Creating Userfirebase.auth() .createUserWithEmailAndPassword(email, password) .then((authData) => { }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // ... });

Page 39: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Signing Infirebase.auth() .signInWithEmailAndPassword(email, password) .then((authData) => { }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // ... });

Page 40: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Signing Outfirebase.auth() .signOut() .then(() => { // Sign-out successful. }, (error) => { // An error happened. });

Page 41: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Facebook Loginvar provider = new firebase.auth.FacebookAuthProvider();provider.addScope(‘user_birthday’);provider.setCustomParameters({ ‘display’: ‘popup’ });

firebase.auth() .signInWithPopup(provider) .then((result) => { var token = result.credential.accessToken; var user = result.user; }, (error) => { // Handle Errors here. });

Page 42: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Custom Auth Service• Easily integrate your custom authentication

service using JWT.firebase.auth() .signInWithCustomToken(jwtToken) .then((authData) => { }) .catch((error) => { // Handle Errors here. });

Page 43: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Realtime Database• Cloud-hosted NoSQL database

• Synchronization & conflict resolution

• Access directly from your app

Page 44: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Realtime Database

Page 45: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Realtime Database

var database = firebase.database()

Page 46: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Writing Datavar ref = firebase.database() .ref(‘lives/live-nuuneoi-com/name’);

ref.set(‘wahahahaha’);

Page 47: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Writing Datavar ref = firebase.database() .ref(‘lives/live-nuuneoi-com/info’);

ref.set({ username: “nuuneoi”, gender: “male”});

Page 48: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Child Events Listeningvar ref = firebase.database() .ref(‘lives/live-nuuneoi-com/info’);

ref.on(‘child_added’, (data) => {});

ref.on(‘child_changed’, (data) => {});

ref.on(‘child_removed’, (data) => {});

Page 49: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Realtime means Realtime[Some Live Demo]

Page 50: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Automated Backups

Page 51: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Storage• Easy file storage

• Handles poor connectivity

• Backed by & accessible fromGoogle Cloud Storage

Page 52: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Storage

var storageRef = firebase.database().ref();

Page 53: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Uploading a File

var storageRef = firebase.database().ref();

var fileRef = storageRef.child(‘/files/hello.jpg’);

Page 54: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Uploading a File

var storageRef = firebase.database().ref();

var fileRef = storageRef.child(‘/files/hello.jpg’);fileRef.put(file, metadata) .then((snapshot) => { // Upload successful. }) .catch((error) => { });

Page 55: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Downloading a File

fileRef.getDownloadURL() .then((url) => { // Insert url into an <img> tag // or download directly from url // with XMLHttpRequest }) .catch((error) => { });

Page 56: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Hosting• Serve static assets

• SSL by default

Page 57: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DeploymentInstall the Firebase CLI

npm install –g firebase-tools

Initialize your app$ firebase init

Add a file

Deploy your website$ firebase deploy

Page 58: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud Messaging

Page 59: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 60: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud MessagingRemote Config

Page 61: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Remote ConfigMake changes to your app's default behavior and appearance by changing server-side parameter values.

Page 62: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud MessagingRemote Config

App Quality ServicesTest Lab for Android

Page 63: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 64: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 65: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 66: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud MessagingRemote Config

App Quality ServicesTest Lab for AndroidCrash Reporting

Page 67: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 68: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

DEVELOPGROW

EARN

Backend ServicesRealtime DatabaseAuthenticationHostingStorageCloud MessagingRemote Config

App Quality ServicesTest Lab for AndroidCrash Reporting

AcquisitionDynamic LinksInvitesAdWords

Re-EngagementNotificationsApp Indexing

In-app AdsAdMob

Analytics

Page 69: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 70: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 71: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 72: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

“Developer’s Good Friend”

Page 73: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Real Case Study

Page 74: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 75: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 76: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

10 hours codingon planew/o internet

Page 77: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Hackathon

Page 78: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Code Battle16:00 – 16:45

Page 79: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Page 80: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

$0.17

Page 81: Firebase Dev Day Bangkok: Keynote

#FirebaseDevDay

Will it last long?The Last Question

Page 82: Firebase Dev Day Bangkok: Keynote

Thank You!

#FirebaseDevDay

Sittiphol PhanvilaiAndroid GDECEO & Founder, The Cheese Factory Co., Ltd.

Facebook Page: nuuneoi.comTwitter: @nuuneoi