Reputation: 15
I'm having difficulties on implementing Firebase push notification in android.
Any help would be very helpful.
Upvotes: -1
Views: 21
Reputation: 21
Add the following in app/build.gradle:
dependencies {
implementation 'com.google.firebase:firebase-messaging:23.3.1'
implementation 'com.google.firebase:firebase-analytics:21.5.0'
}
Also, at the bottom:
apply plugin: 'com.google.gms.google-services'
In project-level build.gradle, add:
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
Now, Create FirebaseMessageReceiver.java
public class FirebaseMessageReceiver extends FirebaseMessagingService {
@Override
public void onNewToken(@NonNull String token) {
}
@Override
public void handleIntent(@NonNull Intent intent) {
if (intent.getExtras() != null) {
for (String key : intent.getExtras().keySet()) {
Object value = intent.getExtras().get(key);
}
}
try {
if (intent.getExtras() != null) {
RemoteMessage.Builder builder = new RemoteMessage.Builder("MessagingService");
for (String key : intent.getExtras().keySet()) {
builder.addData(key, intent.getExtras().get(key).toString());
}
onMessageReceived(builder.build());
} else {
super.handleIntent(intent);
}
} catch (Exception e) {
super.handleIntent(intent);
}
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getData().size() > 0) {
String title = remoteMessage.getData().get("title");
String body = remoteMessage.getData().get("body");
NotificationHelper.sendNotification(this, title, body);
}
if (remoteMessage.getNotification() != null) {
NotificationHelper.sendNotification(this,
remoteMessage.getNotification().getTitle(),
remoteMessage.getNotification().getBody());
}
}
}
Register Service in AndroidManifest.xml
<service
android:name=".FirebaseMessageReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Also, add internet permission:
<uses-permission android:name="android.permission.INTERNET"/>
Get FCM Token in MainActivity.java
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "Fetching FCM token failed", task.getException());
return;
}
// Get the token
String token = task.getResult();
Log.d(TAG, "FCM Token: " + token);
Toast.makeText(MainActivity.this, "FCM Token: " + token, Toast.LENGTH_LONG).show();
}
});
Upvotes: 0