ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

23
Firebase Cloud Messaging & Authentication Andrew Kurniadi, GDE

Transcript of ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Page 1: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Firebase Cloud Messaging & AuthenticationAndrew Kurniadi, GDE

Page 2: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

GCM

Page 3: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

“a free service that enables developers to send messages between servers and client apps. This includes downstream messages from servers to client apps, and upstream messages from client

apps to servers.”

Page 4: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

GCM == FCM ?

Page 5: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Why FCM?

● Registration and subscription retry logic handled by FCM SDK

● GCM will not get any new features● Google ❤� ❤� ❤� Firebase

Page 6: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Message Components

● Target● Options● Payload● Priority

Page 7: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Target { "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification" : { "body" : "Hello World. This is me Andrew", "title" : "Hello World", "icon" : "myicon" } }

Page 8: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Payload { "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "notification" : { "body" : "Hello World. This is me Andrew", "title" : "Hello World", "icon" : "myicon" }, "data" : { "City" : "Jakarta", "Provider" : "Cinema21" } }

Page 9: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

2KBNotification Limit

Page 10: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

4KBData Limit

Page 11: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Common Message Options● Collapsible Messages

○ Chat Messages○ Important message

● Non-Collapsible Messages○ Send-to-sync○ Ping

Page 12: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Priority{ "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",

"priority" : "normal", "notification" : { "body" : "Hello World. This is me Andrew", "title" : "Hello World", "icon" : "myicon" } }

Page 13: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Do I need to migrate from GCM?

● Google will continue to support GCM● No new Client-Side feature will be added to GCM

Page 14: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Services<service

// You only need to have this service if you want to handle the payload manually

android:name=".MyFirebaseMessagingService">

<intent-filter>

<action android:name="com.google.firebase.MESSAGING_EVENT"/>

</intent-filter>

</service>

<service

// Extends FirebaseInstanceIdService

android:name=".MyFirebaseInstanceIDService">

<intent-filter>

<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>

</intent-filter>

</service>

Page 15: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

FirebaseInstanceIdService@Overridepublic void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); Log.d(TAG, "Refreshed token: " + refreshedToken);

// TODO: Implement this method to send any registration to your app's servers. sendRegistrationToServer(refreshedToken);}

Page 16: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

FirebaseMessagingService

● Handle background messages manually● Handle data payload● Send upstream messages● Receive message in foregrounded app

Page 17: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Code Demo

Page 18: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Firebase Authentication

Page 19: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

How does it work?

Page 20: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Supported Authentication Method● Popular Services (Google, Facebook, Twitter, Github)● Email & Password● Anonymous Login● Custom Backend Auth

Page 21: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

FirebaseUI Auth

● Drop-In solution● Customizable

Page 22: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Firebase Authentication SDK

● Implement Custom Flow● More Work

Page 23: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi

Terima Kasih