id android techtalk series #6 : google service and gradle - andrew kurniadi
TRANSCRIPT
![Page 1: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/1.jpg)
Firebase Cloud Messaging & AuthenticationAndrew Kurniadi, GDE
![Page 2: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/2.jpg)
GCM
![Page 3: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/3.jpg)
“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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/4.jpg)
GCM == FCM ?
![Page 5: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/6.jpg)
Message Components
● Target● Options● Payload● Priority
![Page 7: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/9.jpg)
2KBNotification Limit
![Page 10: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/10.jpg)
4KBData Limit
![Page 11: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/17.jpg)
Code Demo
![Page 18: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/18.jpg)
Firebase Authentication
![Page 19: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/19.jpg)
How does it work?
![Page 20: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/21.jpg)
FirebaseUI Auth
● Drop-In solution● Customizable
![Page 22: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/22.jpg)
Firebase Authentication SDK
● Implement Custom Flow● More Work
![Page 23: ID Android TechTalk Series #6 : Google Service and Gradle - Andrew Kurniadi](https://reader031.vdocuments.site/reader031/viewer/2022030305/587541c51a28abb8208b52c9/html5/thumbnails/23.jpg)
Terima Kasih