Firebase Cloud Messaging
Firebase Cloud Messaging Project Setup
Create a Firebase project:
Add your app to the project:
Register the app by filling in the required details:
Download the google-services.json file:
Configuring the Altcraft Resource
In the Altcraft platform, create a resource or add a new communication channel — Push — to an existing one. In the resource settings, select the Android platform and enable the Firebase Cloud Messaging toggle:
Then, scroll down to the Firebase settings section and specify your Project ID (messagingSenderId) and Sender ID (projectId).
You must also upload the Firebase private key file (.json):
You can generate this Firebase file in Project settings → Service account in the Firebase console.
After making changes, don’t forget to save the resource.
Integrating FCM into the App Project
Manual Integration
Move the downloaded google-services.json file to the root directory of your app module (app):
Then add the necessary plugins and dependencies to your Gradle files:
build.gradle.kts (project level)
Add the google-services plugin to the project-level build.gradle.kts file:
plugins {
id("com.google.gms.google-services") version "4.4.3" apply false
}
Information about the latest plugin version is available here.
build.gradle.kts (app level)
Add the google-services plugin to the app-level build.gradle.kts file:
plugins {
id("com.google.gms.google-services")
}
Also add dependencies:
Using firebase-bom (automatically manages Firebase library versions)
dependencies {
implementation(platform("com.google.firebase:firebase-bom:34.0.0"))
implementation("com.google.firebase:firebase-messaging")
}
Without firebase-bom
dependencies {
implementation("com.google.firebase:firebase-messaging:25.0.0")
}
After adding the plugins and dependencies, sync your Gradle changes.
Automatic Setup in Android Studio
Navigate to Tools -> Firebase -> Cloud Messaging -> Set up Firebase Cloud Messaging:
Creating a Class Extending FirebaseMessagingService()
Create a class that extends FirebaseMessagingService():
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
/**
* FCM service for handling push tokens and messages.
*/
class FCMService : FirebaseMessagingService() {
/**
* Called when a new FCM token is generated.
*
* @param token The new FCM token.
*/
override fun onNewToken(token: String) {
super.onNewToken(token)
}
/**
* Called when a push message is received.
*
* Forwards the message to all receivers with additional metadata.
*
* @param message The received [RemoteMessage].
*/
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
// Message
}
}
Updating the App Manifest
Add the FCMService declaration to your app’s AndroidManifest.xml file:
<service
android:name="com.altcraft.fcm.FCMService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Replace com.altcraft.fcm.FCMService with your own package and class name.