- Web Push. Android devices can subscribe to your website or PWA without an FCM Service Account. See Web push setup.
- Huawei apps distributed via the Huawei App Gallery. See Huawei Authorization.
Requirements
- An Android app distributed via the Google Play Store
- A OneSignal account
- A Firebase account (free)
- A Firebase Service Account private key with the
cloudmessaging.messages.createandfirebase.projects.getpermissions- If you do not have one, follow the steps below to create a Firebase Service Account private key
- If you already have a private key, check existing permissions
Create a Firebase Service Account private key
Create or open your Firebase Project

Page of Projects within Firebase
Enable Firebase Cloud Messaging API V1

Cloud Messaging tab in Firebase Project settings
- If it shows Enabled (green checkmark), continue to the next step.
- If it shows Disabled, click the 3-dot menu > Manage API in Google Cloud Console. In the Google Cloud Console, click Enable and wait for the green checkmark to appear with “API Enabled”.

Firebase Cloud Messaging API enabled in the Google Cloud Console
cloudmessaging.messages.createfirebase.projects.get
Generate a new private key

Service Accounts section within Firebase

Generate the private key for the service account.
.json file in a secure location. You will need it in the next section.Upload the Service Account private key to OneSignal
In your OneSignal dashboard:Open Android settings

Platforms screen within OneSignal app settings
Upload your Service Account private key
.json private key you saved in the previous section.
FCM configuration screen
Save and continue
FAQ
How do I check my Service Account permissions?
Service Account permissions are managed in the Google Cloud Console, not the Firebase Console. The Service Account whose private key you upload to OneSignal must have both:cloudmessaging.messages.create— granted by Firebase Cloud Messaging API Admin (roles/firebasecloudmessaging.admin).firebase.projects.get— granted by Firebase Viewer (roles/firebase.viewer).
roles/firebase.admin), Editor, or Owner include both permissions and also satisfy the requirement. For OneSignal-only Service Accounts, prefer the narrow pair above to limit the impact if the private key is ever exposed.
If the OneSignal dashboard shows Invalid request after you upload your Service Account private key, missing roles are the most common cause.
Open IAM in the Google Cloud Console
Find your Service Account
client_email field in your uploaded private key.Add any missing roles
Save
Why am I seeing “This configuration is for a different Firebase Project”?
This error occurs when the uploaded private key belongs to a different Firebase project (a different Sender ID). Solution: Use the original Firebase project’s private key. If unavailable, contactsupport@onesignal.com with your App ID. Switching projects resets push tokens. Your users must reopen the app to get push again.
Can I change my Sender ID?
Yes, but it will impact your existing users. Device tokens are tied to the original Sender ID. Changing it will invalidate existing tokens. If you need help, contactsupport@onesignal.com with your App ID.
Why don’t I see a Sender ID in OneSignal?
If your Firebase server key looks likeAIz..., you’re likely using an outdated Google Cloud Messaging (GCM) setup. Create a new Firebase project and upload a Service Account private key.
Do I need to update my code when switching to FCM V1?
No app or SDK changes are required. This is a dashboard-only update.What is the deadline for switching to FCM V1?
Google legacy FCM APIs are now fully deprecated. If you are still using the legacy APIs, you should migrate to FCM V1 immediately.How can I check which apps are still using the Legacy API?
Call the View an app API for each app and check thefcm_v1_service_account_json field in the response:
- Present and non-empty: the app is on FCM V1.
- Missing or empty: the app is not configured for FCM V1. If the app sends Android push, it is still on the Legacy API and must be migrated.