Skip to main content

Android 推送通知

先决条件

配置 Android 通知通道

Firebase 设置

你必须使用并同步三个 Google 网站。在 Google/Firebase 中,同时存在 Projects 和 Apps:

PlayFab 需要服务器私钥文件

  • 你可以从 Firebase Console 获取此私钥文件。
  • Firebase Console
    • 选择你的 ProjectApp,找到 Settings 选项(有多种方式可以到达此处,最终都会到达同一位置)。
    • Service accounts 选项卡中,选择 Generate new private key 按钮以下载 JSON 文件。

使用私钥文件

  • 通过以下两种方式之一提供你的私钥文件:
    1. 直接将私钥文件上传到 Game Manager UISettings(针对你的 Title)> Push Notifications > Android
    2. 或者使用 Postman 或启用了 Server API 方法的 Unity 项目调用 SetupPushNotification
    • Name:your_game_name
    • Platform:GCM
    • Credential:(私钥文件内容作为字符串):{ ... }
    • Overwrite OldARN:true
    • 你应该会收到一个 HTTP 200 OK 响应,数据类似如下。
  • 正确设置完成后(使用任一方法),你应该在 Game Manager UISettings(针对你的 title)> Push Notifications > Android 中看到以下内容。 PlayFab Settings - Push Notifications - Android

入门:Android + Unity 推送通知

设置你的 Unity 项目:
  • 创建新的 Unity 项目。
  • 可选 导入 PlayFab Unity Editor Extensions 包。
  • 导入 Unity PlayFab SDK 包。
  • 按照 FCM Unity 指南安装 FCM 消息传递,并为推送通知设置项目。
    • 完成后,可以继续按照本指南接收来自 PlayFab 的消息。
    • 我们将在下面的示例中提供一个完整的支持 FCM 的 monoBehaviour 脚本,它结合了 FCM 和 PlayFab。
  • 在 FCM 指南中,你创建了一个用于设置 Firebase 插件的 monobehavior 脚本。
    • 你可以继续使用该 monobehavior 脚本,或将其替换为下面示例中的脚本。

设置你的第一个推送通知

在 Unity 中打开你在 FCM 教程中创建的脚本,并替换其内容。
在设备上构建并运行你的 Unity 项目。如果你收到文本为 Push notifications registered successfully 的推送通知,则说明一切按预期工作。
PlayFabSettings.TitleId = TITLE_ID。你必须设置自己的 TitleId。如果不更新此 TitleId,此示例将无法工作,因为我们的 title 已使用我们的 Firebase 密钥和设置注册,而不是你的。你可以通过取消注释此行并将 TITLE_ID 替换为你的 titleId 来实现,或者你可以从上一节中提到的可选 Editor Extensions 插件中选择你的 title。

Android 疑难解答

  • 验证你能否从 Firebase Console 发送测试推送通知。
    • 如果不能,则说明你的 Firebase 插件未正确设置,你应查阅 Firebase 文档以找出原因,或联系 Firebase 支持。
  • 确保正确设置了 FCM 客户端 pushToken。
    • 示例中的 OnTokenReceived 函数应被调用,并且应具有有效的令牌。
    • 如果被调用,则你的 Firebase 插件正确设置,你应查阅 Firebase 文档以找出原因,或联系 Firebase 支持。
  • 确保你的 titleId 设置为你拥有的 title,并且已使用来自你的 Firebase 项目的服务器 API 密钥进行了注册。

高级功能

server.SendPushNotification 中,你可以使用 request.Package.CustomData 向设备传送任意数据。在前面的示例中,这些数据会传送到带有以下注释的部分。
你可以自定义客户端接收器,以任意方式使用这些数据。CustomData 不会显示给玩家,因此可用于向你的客户端传送自定义游戏信息,或使用 FCM 插件本地安排另一个未来的通知。 你还可以使用 request.Package.CustomData 或请求 AdvancedPlatformDelivery 来传送到许多第三方插件。
不支持或保证第三方插件传送,但可供高级用户使用。

其他支持

如需帮助、示例错误报告和相关问题,请通过我们的论坛与我们联系。 目前,我们仅支持本文档中描述的标准流程的服务。如果你的团队正在寻找与其他常见推送服务或插件配合使用的其他功能,请告诉我们!我们很乐意从我们的开发者社区获得反馈。 有关通过 Amazon SNS 的推送负载的文档:
最后修改于 2026年8月13日