本说明不适用于:
- Web Push。 Android 设备无需 FCM 服务账户即可订阅您的网站或 PWA。请参阅 Web push 设置。
- 通过华为应用市场分发的华为应用。 请参阅 华为授权。
要求
- 通过 Google Play Store 分发的 Android 应用
- 一个 OneSignal 账户
- 一个 Firebase 账户(免费)
- 具有
cloudmessaging.messages.create和firebase.projects.get权限的 Firebase 服务账户私钥- 如果您还没有,请按以下步骤创建 Firebase 服务账户私钥
- 如果您已有私钥,请检查现有权限
创建 Firebase 服务账户私钥 \
创建或打开您的 Firebase 项目
转到您的 Firebase 控制台,创建或选择一个项目。

启用 Firebase Cloud Messaging API V1
在项目设置中,选择 Cloud Messaging 选项卡。
检查 Firebase Cloud Messaging API (V1) 状态:

- 如果显示已启用(绿色对勾),请继续下一步。
- 如果显示已禁用,请点击 3 点菜单 > 在 Google Cloud Console 中管理 API。在 Google Cloud Console 中点击启用,等待出现绿色对勾和 “API Enabled” 字样。

此时正适合检查您的 Firebase 服务账户是否具有所需权限:
cloudmessaging.messages.createfirebase.projects.get
将服务账户私钥上传到 OneSignal
在您的 OneSignal 控制台中:您的 OneSignal 应用现已连接到 Firebase Cloud Messaging (V1)。接下来,按照移动 SDK 设置中适用于您所用 SDK 的说明,在您的应用中安装并初始化 OneSignal。
常见问题
我如何检查我的服务账户权限? \
服务账户权限在 Google Cloud Console 中管理,而不是在 Firebase 控制台中。您上传到 OneSignal 的私钥所对应的服务账户必须同时具有:cloudmessaging.messages.create——由 Firebase Cloud Messaging API Admin(roles/firebasecloudmessaging.admin)授予。firebase.projects.get——由 Firebase Viewer(roles/firebase.viewer)授予。
roles/firebase.admin)、Editor 或 Owner 这样更宽泛的角色也包含这两项权限,同样满足要求。对于仅用于 OneSignal 的服务账户,建议优先使用上述精细的角色组合,以限制私钥泄露时的影响。
如果在上传服务账户私钥后 OneSignal 控制台显示 Invalid request,缺少角色是最常见的原因。
在 Google Cloud Console 中打开 IAM
登录 Google Cloud Console,选择与您的 Firebase 应用关联的项目,然后转到 IAM 和管理 > IAM。
为什么我看到 “This configuration is for a different Firebase Project”?
当上传的私钥属于不同的 Firebase 项目(不同的 Sender ID)时会出现此错误。 解决方案:使用原始 Firebase 项目的私钥。如果无法获得,请联系support@onesignal.com 并提供您的应用 ID。切换项目会重置推送令牌。您的用户必须重新打开应用才能再次接收推送。
我可以更改 Sender ID 吗?
可以,但会影响您的现有用户。 设备令牌与原始 Sender ID 绑定。更改它会使现有令牌失效。 如果需要帮助,请联系support@onesignal.com 并提供您的应用 ID。
为什么我在 OneSignal 中看不到 Sender ID?
如果您的 Firebase 服务器密钥看起来像AIz...,您可能在使用过时的 Google Cloud Messaging (GCM) 配置。请创建一个新的 Firebase 项目并上传一个服务账户私钥。
切换到 FCM V1 时我需要更新代码吗?
不需要应用或 SDK 更改。这仅是控制台更新。切换到 FCM V1 的截止日期是什么时候?
Google 的旧版 FCM API 现已完全弃用。如果您仍在使用旧版 API,应立即迁移到 FCM V1。我如何检查哪些应用仍在使用旧版 API?
对每个应用调用查看应用 API,并检查响应中的fcm_v1_service_account_json 字段:
- 存在且非空:应用使用 FCM V1。
- 缺失或为空:应用未配置 FCM V1。如果该应用发送 Android 推送,则仍在使用旧版 API,必须进行迁移。
什么是 Firebase Cloud Messaging,OneSignal 为什么需要服务账户私钥? \
Firebase Cloud Messaging (FCM) 是 Google 用于向 Android 设备发送推送通知的服务。服务账户是 OneSignal 用于向您的 Firebase 项目进行身份验证的 Google 身份,其私钥是证明该身份的 JSON 文件。上传私钥即授权 OneSignal 代表您通过 Firebase 发送推送。有关更多详细信息,请参阅 Google 的服务账户文档。相关页面
移动 SDK 设置
在您的 Android 应用中安装并初始化 OneSignal SDK。
移动推送设置
针对 Android、iOS 及其他移动平台的平台特定设置步骤。
华为推送设置
授权 OneSignal 向通过华为应用市场分发的华为应用发送推送。
Web push 设置
为网站配置推送通知。



