跳转至

Android App工程引入firebase,使用Cloud Messaging

本文目标

app中使用firebase,并实现推送消息到app上,app弹出通知。

前提条件

安装最新版本的 Android Studio,或更新为最新版本。

确保您的项目满足以下要求:

  • 目标 API 级别为 19 (KitKat) 或更高
  • 使用 Android 4.4 或更高版本
  • 使用 Jetpack (AndroidX),这需要满足以下版本要求:
    • com.android.tools.build:gradle 3.2.1 或更高版本
    • compileSdkVersion 28 或更高版本

设置一台实体设备或使用模拟器运行您的应用。

请注意,依赖于 Google Play 服务的 Firebase SDK 要求设备或模拟器上必须安装 Google Play 服务(并且能访问Google)。

Firebase注册

使用您的 Google 账号登录 Firebase。

在Google控制台,创建firebase项目,根据引导操作即可。

firebase

在firebase上注册应用

google service json

add-firebase-sdk

app

启动后,可以得到一个app的token,例如(测试机)

eMJzgmYVQNuN38z0XWe50i:APA91bEzEesoB1M-glauU-uhdcq_LO7sC7qqErU6SvCR-J7q1C4QUv-fDUlnyA1g22EhWPkVvj2pRRDulleoZtrRt7JhiKoV75VfeZaWiwQ2zUautjKfvGnhRHPJ6CbIBJdL6tl0clNE

获取Google的Authentication Bearer

Steps to get Authentication Bearer:

电脑浏览器打开 Google OAuth Playground: https://developers.google.com/oauthplayground

In the "Input your own scopes" for FCM use this url: https://www.googleapis.com/auth/firebase.messaging

Tap Authorize API.

Pick correct user for authorisation and allow access.

In the Step 2: Exchange authorization code for tokens tap Exchange authorisation code for tokens. Access token is your Bearer.

使用curl发起推送

前提:电脑网络可以访问Google

用上一步获取到的 Authorization

curl -X POST -H "Authorization: Bearer ya29.a0AXooCguV7jwCC_b9VeeOnOESn7ggF0uiPKDaOKWXBxz3gv7VA8ln0IdkgE5re6SQRVL4LJXYGT1NgjpkS7PsdWcmlqZ1RY52oFsVy0sybnrtm3cWjr-uU1kcDfM8x8m12LFbtEj3541BidqVm7N_F_v-JSfxzcO-baYtaCgYKAdMSARISFQHGX2MiyPzJWEAiStRxJcElKu_K7w0171" -H "Content-Type: application/json" -d '{
"message":{
   "notification":{
     "title":"FCM Message",
     "body":"an.rustfisher.com. This is an FCM Message"
   },
   "token":"eMJzgmYVQNuN38z0XWe50i:APA91bEzEesoB1M-glauU-uhdcq_LO7sC7qqErU6SvCR-J7q1C4QUv-fDUlnyA1g22EhWPkVvj2pRRDulleoZtrRt7JhiKoV75VfeZaWiwQ2zUautjKfvGnhRHPJ6CbIBJdL6tl0clNE"
}}' https://fcm.googleapis.com/v1/projects/anrfdevfirebasedemoforpublic/messages:send

后台推送消息参考 https://firebase.google.com/docs/cloud-messaging/send-message?hl=zh-cn#java

App无法接收推送的问题

一些国产手机划掉app后无法接收fcm推送,在应用信息中开启【自启动】后能够正常接收推送。

划掉app后依然能够接收fcm推送,但是在应用程序信息中【强制停止】后无法接收fcm推送,谷歌的回答是:

当您的应用程序被强制停止或终止时,您似乎遇到了问题。 实际上,这是按预期工作的。 Android 框架建议,在没有明确的用户交互的情况下,不应启动已停止(即从设置中终止/强制停止)的应用程序。 FCM 遵循此建议,因此其服务也不会启动。 这也意味着当应用程序处于“已终止”状态时,将不会收到消息(不会调用 FirebaseMessagingService)

参考

在 Android 应用中接收消息 https://firebase.google.com/docs/cloud-messaging/android/receive?hl=zh-cn

本站说明

一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~

📖AndroidTutorial 📚AndroidTutorial 🙋反馈问题 🔥最近更新 🍪投喂作者

Ads