首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

应用程序关闭时未收到Firebase消息服务

当应用程序关闭时未收到Firebase消息服务(FCM)的通知,可能涉及以下几个基础概念及解决方案:

基础概念

  1. Firebase Cloud Messaging (FCM):
    • 是Google提供的跨平台消息传递解决方案,用于向移动设备发送通知和数据消息。
  • 通知与数据消息:
    • 通知消息: 当应用不在前台运行时,FCM会显示系统通知。
    • 数据消息: 包含自定义键值对,应用可以在前台或后台处理这些数据。
  • 后台服务:
    • 应用程序的后台服务可以处理接收到的消息,即使应用未处于活跃状态。

可能的原因及解决方案

1. 应用权限设置不正确

确保应用已正确配置FCM所需的权限和服务。

AndroidManifest.xml示例:

代码语言:txt
复制
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.VIBRATE"/>

<application ...>
    <service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
</application>

2. 未正确初始化FCM

确保在应用启动时正确初始化FCM。

MainActivity.java示例:

代码语言:txt
复制
FirebaseApp.initializeApp(this);

3. 后台限制

某些操作系统版本对后台服务的限制可能导致消息无法及时处理。

解决方案:

  • 使用WorkManager进行后台任务调度。
  • 确保应用符合操作系统的后台执行策略。

4. 设备令牌问题

确保设备已成功注册并获取了有效的FCM令牌。

MyFirebaseMessagingService.java示例:

代码语言:txt
复制
@Override
public void onNewToken(String token) {
    Log.d(TAG, "Refreshed token: " + token);
    // 发送新令牌到服务器
}

5. 网络问题

检查设备的网络连接是否正常。

6. 服务器端问题

确保发送消息的服务器端配置正确,且消息格式符合FCM的要求。

应用场景

  • 实时通知: 如新闻应用推送最新资讯。
  • 消息提醒: 如社交应用中的即时消息通知。
  • 事件触发: 如日程提醒或活动通知。

优势

  • 跨平台支持: 支持Android、iOS及Web应用。
  • 高效可靠: 利用Google的基础设施确保消息的快速传递和高可靠性。
  • 灵活的消息类型: 支持通知和数据消息,满足不同业务需求。

通过上述步骤,通常可以解决应用程序关闭时未收到FCM通知的问题。如果问题依然存在,建议检查日志文件或使用调试工具进一步排查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

APP消息推送方案调研

低功耗推送服务采用了统一消息中心(Notification Center,以下简称NC)的能力,华为终端设备收到通知栏消息时由NC统一展示消息,当用户点击通知栏消息时才会拉起目标应用进程,NC的能力减少了启动应用进程的频率从而降低终端设备的功耗...使用GCM推送服务的whatsapp即使后台程序和服务都关闭掉,也依然可以在第一时间接收到新消息的推送(实测在国内whatsapp也的确可以在后台关闭的情况下正常通过GCM接受实时消息)。...和 SMS 轮询(Pull)方式应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。...https://firebase.google.com/docs/cloud-messaging对于 Android 设备,FCM 使用单一的、优化的连接到 Google Play 服务,而不是为每个应用程序建立单独的连接...hl=zh-cn#send-messages-to-multiple-devices在Firebase Admin SDK中发送消息时使用的registrationTokens是设备端生成的Firebase

40110
  • 使用Google Cloud Platform进行资产跟踪

    加里(Gary)警告客户有关这项新法律,但是有些人仍然进入禁止自行车区域,等到他收到邮件罚款时,这些客户早已不在了。 解决方案 硬件 加里受够了现状,他来到Leverege寻求帮助。...Pub Sub是一个消息队列服务,可以处理大量消息,并且具有容错能力。如果Leverege为处理和存储消息而创建的部分云服务暂时不可用,则消息将保留在队列中,并且不会丢失。...我们希望有一种可靠、快速的方法来存储加里的所有最新数据,以便在地图上轻松查看他所有未偿租金的自行车位置。...我们创建了两个简单的数据写入服务,将它们添加到Kubernetes Engine中,并将Gary的所有数据路由到两个服务中,以便在它们到达时进行写入。...他已经开始考虑进行硬件升级,这将使他可以在接近关闭时间时向所有自行车发送音频消息。

    2.5K00

    Flutter 日志最佳实践

    结构和消息传递不当的日志使得内容难以破译。比如,HTTP 请求可以包含多个参数或具有需要检查的重要结果。当日志结构不当时候,执行此操作可能很困难且耗时。 让我们考虑一下构建应用程序需要什么。...首先,你必须保证对服务器所有调用都成功通过。然后,你需要检查 UI 的某些部位是否正确构建,还有关于数据库的信息。...在不需要的时候关闭日志 在开发环境中,你需要检查比生产环境中更多的日志 -- 所以在生产中不要记录不必要的信息。生产环境中的应用可能比调试的应用在更多设备运行。...连接 Crashlytics Firebase’s Crashlytics 服务允许开发者分析应用程序中崩溃和特殊事件。...这有助于 Crashlytics 成为一种通用的日志工具,而不仅仅是应用程序出现问题时提供帮助的工具。 按照下面的步骤,在你的应用程序中使用 Firebash Crashlytics: 1.

    5.3K20

    React Native推送通知:完整的操作指南

    推送通知是从应用程序发送到已安装该应用的用户的消息或警报。...原生平台特定的通知服务(FCM/APNs) Android和iOS平台都提供了用于接收推送通知的原生平台特定API 适用于安卓设备的Firebase云消息传递(FCM) 苹果推送通知服务(APNs)适用于...在 React Native 中处理接收到的通知 要处理接收到的通知,我们首先需要有一个事件监听器,每当用户点击通知时都会被调用。...这个库拥有许多特性,其中包括: Firebase 和 OneSignal 集成:与Expo不同,Notifee也支持OneSignal令牌。这为用户在使用通知服务时提供了更多的选择。...后台通知 感谢 Notifee,我们甚至可以创建后台通知,即使应用程序关闭,也可以发送。这适用于我们想要发送一个无声通知的情况,无论应用程序是否打开,例如文本消息或已完成的下载,都需要发送。

    1.4K10

    面试软件测试APP岗位,这些题目你不可不知!

    Web应用通过浏览器访问,因此测试时无需考虑客户端的一致性,只要服务器更新,客户端就会同步更新。...此外,还需要测试APP在用户未授权的情况下是否访问了用户的敏感信息等。...Messaging (FCM)等也可以用于发送测试通知 二、测试内容 基本功能测试: 检查Push消息是否按照指定的业务规则发送 检查不接收推送消息时,用户是否不再接收到Push消息 当Push消息是针对登录用户时...,检查收到的Push消息与用户身份是否相符 时间相关测试: 检查在免打扰时间段内,用户是否接收不到Push消息 检查在非免打扰时间段内,用户是否能正常接收到Push消息 状态相关测试: 测试在开关机、待机状态下执行推送...,消息及其推送跳转的正确性 检查应用在不同状态(开发、未打开、启动且在后台运行)下Push显示和跳转的正确性 显示和跳转测试: 检查Push消息是否有红点展示,推送消息阅读前后数字的变化是否正确 验证Push

    7410

    我们弃用 Firebase 了

    的确,纯从性能上讲,在 AWS/Azure/ GCP 上构建的定制化原生服务包优于 Firebase 套件。但是,当我们考虑到开发时间和维护成本时,Firebase 通常是一个合乎逻辑的选择。...你可以编写实现实时数据同步的应用程序,而且不需要开发大量的传输逻辑。那些在自制即时通讯应用程序中使用了长轮询请求的的用户肯定会喜欢它。...这个 Web 片段会将站点配置为使用特定的 Firebase 应用程序,并借助环境变量使我们可以跨项目保留脚手架。...对于这个问题,K-Optional Software 几乎在同一时间收到了多个关于项目(不是我们的项目)的咨询请求,一切都表明,是 API 的突然变化造成了麻烦。...在 CI 代码中,过滤掉未更改的文件,并部署与已更改的文件相对应的函数。不用说,这两种变通方法都有很多需要改进的地方。

    32.7K30

    我们能用云函数做什么?

    Firebase以独特的方式使用云函数来满足其独特需求,典型运用的领域: 当发生了一些新奇有趣的事情通知用户 执行实时的数据库清理和维护 在云上执行密集的任务,而不是在本地的应用程序上 与第三方的服务和...在这样的程序中,由实时数据库触发的写入功能以存储新的关注者可以创建Firebase的云消息通知,让用户知道他们的粉丝数又增加了。...下面是它的工作原理图: 该函数在对实时的数据库路径写入了相关信息,存储粉丝 该函数通过向FCM(Google的推送服务)发送消息 FCM向用户的设备发送通知消息 YingJoy 其它通知的用例 向订阅...例如,在基于实时数据库的聊天室应用程序中,您可以监视写入的事件,并从用户的消息中擦除一些带有敏感词或不恰当的文本。...1.定期删除未使用的帐户 2.自动和上传的图像 3.向用户发送批量电子邮件 4.定期汇总数据 5.处理待处理的工作队列 四、与第三方的服务和API集成 云函数可以通过调用和公开服务或API来使你的应用程序可以更好地与其他服务配合工作

    16.9K40

    firebase 云通知功能使用。有独立的demo可用,还有测试工具。

    set up如下图: 按照步骤123:,进行操作,如下图: 在连接时需要你写两个服务,在Firebase发出消息时你能接到消息,类我已经写好了,直接就能用: 首先你导包: compile 'com.google.firebase...'com.google.firebase:firebase-messaging:11.0.4' 两个服务如下: public class...("CallBlackTimingDialog"); 这是关键字,作为识别你的应用的地方,在发云消息的命令中会用到这个关键字。...(this).logEvent("云弹窗", "接收到云弹窗"); } String Token = FirebaseInstanceId.getInstance...(this).logEvent("user_id", Token); } } } } 在上面这个服务中,会根据关键字进行判断,当你的app有多个云弹窗就需要进行判断收到的是哪个弹窗

    7010

    集成推送那点事-友盟Mob-FlutterFCM

    pushAgent.notificationPlayVibrate = MsgConstant.NOTIFICATION_PLAY_SDK_ENABLE // 通知免打扰 SDK默认在“23:00”到“7:00”之间收到通知消息时不响铃...} 很多时候我们都希望,即使用户当前未使用 App,或者说当前的 App 处于被杀死的状态,后台推送消息依然想被前台接收。...3.3 FCM 消息处理 在 app build 中完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4...implementation 'com.google.firebase:firebase-messaging-directboot:20.2.2' 随后创建一个 Service 用于处理 FCM 消息...,蛮简单的,这里说下几个点吧: 由于项目需求设置以用户名为别名,所以也涉及到了添加别名这个操作,而在这里则是本地维护了一个状态,避免多次设置重复别名; 其次需求是接收到消息推送执行刷新操作,所以我在这里直接接收到推送消息后通过

    11.5K41

    Android Firebase 服务简介

    早在2014年,谷歌收购了Firebase,这主要是一种面向应用程序开发人员的数据库。Firebase基本上向广大的应用程序开发人员提供不同的服务,比如存储、消息传递、通知和身份验证等服务。...二、开发 云消息传递(Firebase Cloud Messaging) 可以通过后台服务向用户推送消息,对于即时通讯等用例,一条消息可以将最大 4KB 的负载传送至客户端应用。...实时数据库(Firebase Realtime Database) 云托管 NoSQL 数据库,数据为JSON形式,设备离线可以使用数据,具有同步功能,恢复链接时可以上传回服务器。...如果当用户搜索相关内容时已安装应用,则他们可以直接从搜索结果中启动应用。 如果用户还未安装应用,则将在搜索结果中显示安装卡片。...Firebase在服务端的配置 首先为APP建立个云后端,登陆[FireBase官网]https://www.firebase.com/,注册账号,注册完后,会有这个提示。 ?

    22.8K90

    FCM---Android系统级推送---你还在用第三方推送?

    如果您希望在后台进行接收应用通知之外的任何消息处理,则必须添加此服务。要在前台应用中接收通知、接收数据负载以及发送上游消息等,您必须扩展此服务。...通过替换 FirebaseMessagingService.onMessageReceived 方法,您可以根据收到的消息执行操作,并获取消息数据: ?...检查 Google Play 服务 APK 实现连接服务器协议 Firebase Cloud Messaging服务器端包含两个组件: 1、GCM 连接服务器,由 Google 提供。...实现 HTTP 连接服务器协议 1、发送下游消息官方文档https://firebase.google.cn/docs/cloud-messaging/downstream?...设置消息优先级 "priority" : "high", 下游消息语法 官方文档 : https://firebase.google.cn/docs/cloud-messaging/http-server-ref

    12.9K30

    Firebase In-App Messaging 应用内消息

    举例:玩游戏通过某个关卡时发送应用内消息促使他们完成重要的应用内操作 应用内消息可以自定义,使其显示为卡片、横幅、模态窗口或图片,并设置触发器,使其在合适时机出现 In-App Messaging 的集成...iOS、Android、flutter 集成,详情可见 注意: 发送测试消息,为节省能耗,Firebase In-App Messaging 每天仅从服务器检索一次消息。...这可能会使测试难以进行,因此 Firebase 控制台允许您指定一部测试设备来按需显示消息。...iOS、Android、flutter 相关处理,详情可见 In-App Messaging 用途 通过 Firebase 控制台可以修改消息的样式、定位和推送时间 Firebase In-App Messaging...可以是默认事件或自定义事件,应用内消息会在指定的事件时触发 设置每台设备的推送频率限制 Snip20230915_27.png 转化事件 应用内消息将转化为事件进行统计 Snip20230915

    42210

    Google无视用户隐私设置,暗中收集Android位置数据

    许多人都知道智能手机会追踪他们的位置,但是,在已经主动关闭了定位服务,且没有使用任何应用程序,甚至都没有插入运营商的SIM卡的情况下,你觉得手机还会被定位吗?...对于那些不愿被追踪的人来说,这种做法让人很不舒服,特别是某些执法官员或家庭暴力受害者,因为他们认为关闭了定位服务,下落就会被完全隐蔽。...位置分享的做法似乎并不局限于特定类型的安卓手机或平板电脑,谷歌显然是收集来自所有安卓设备发送的基站数据,Quartz联系到一位知情人士,他表示在2017年初谷歌Firebase云消息服务发生变更后,位置回传就开始了...,且默认情况下Firebase云消息服务是在安卓手机上自动运行的。...据Google发言人称,该公司控制其推送通知和消息的系统“与定位服务完全分开,定位服务为应用程序提供了设备的位置”,Android设备从未向用户提供一种不收集基站数据的位置服务。

    1.9K60

    推荐 10 个 Heroku 的替代品

    但是现在,Heroku 宣布他们将关闭所有免费的 dynos、postgress 和 Redis 存储,所以要么升级到付费,要么寻找替代品。...4、Firebase (Google提供) 如果已经在使用其他 Google 服务并且希望彼此轻松集成,或者只是喜欢 Google 本身,Firebase[4] 为您提供了一个极好的免费计划!...5、Render Render[5]速度极快,还有很多免费的附加功能,如果需要一个免费提供快速服务器和 DB 和 Redis 的新提供商,那么这就是最佳选择!...10、Gigalixir.com Gigalixir.com[10],Elixir 开发人员可以使用这个,适用于免费制作原型和测试小型应用程序。...最后的话 以上的网址实测真实可用,如果你还有更多的选择,可以发消息分享给我们。如果某些站点要求提供信用卡来试用,你可以使用一次性信用卡,或者关注信用卡账单。

    5.3K21

    云开发:构建强大应用的云原生开发指南

    云开发是一种基于云原生架构的开发方法,它允许开发者构建应用程序,利用云服务的强大功能,如存储、数据库、身份验证和部署,无需管理底层基础架构。...# 示例代码:使用AWS Amplify初始化云开发项目 amplify init 第二部分:构建云原生应用 2.1 数据存储 深入研究如何使用云存储服务(如云数据库、云文件存储)来存储和管理应用程序数据...', authDomain: 'YOUR_AUTH_DOMAIN', }; firebase.initializeApp(config); 第三部分:云函数和无服务器计算 3.1 云函数 如何创建和部署云函数...3.2 事件驱动架构 讲解如何使用事件触发器(如消息队列、Webhook)构建事件驱动的应用。..., }; }; 第四部分:部署和监控 4.1 自动化部署 如何使用自动化部署工具(如AWS Amplify、Firebase CLI)将应用程序部署到生产环境。

    34620

    用 实时数据库 实现 协作

    阅读了socket.io,google的firebase在线实时数据库,它功能 Firebase功能 实时数据库 - Firebase支持JSON数据,每次更改后,连接到它的所有用户都会收到实时更新。...托管主机 - 应用程序可以通过安全连接部署到Firebase服务器。 //更多请阅读:Firebase简介 -FireBase教程 实时数据库就是监听数据更新,然后广播到所有连接的用户。...而我们现在已经无法连接google的任何服务了,所以国内的memfiredb是它的替代品,memfiredb使用了开源supabase这个firebase的替代品,但api接口不一样,挺遗憾了。...https://firebase.google.cn/docs/reference/js/v8/firebase.database.Reference#onceReference for Reference...https://firebase.google.cn/docs/reference/js/v8/firebase.database.Reference#onceFirebase简介 -FireBase

    4K30

    应用上云2小时烧掉近50万,创始人:差点破产,简直噩梦

    2020年3月,当COVID上市时,我们的初创公司Milkie Way也遭受了巨大的打击,几乎被关闭了。...在此过程中,我们已经禁用了计费功能,并关闭了所有服务。 由于我们在所有GCP项目中都使用了相同的公司卡,因此我们所有的帐户和项目都已被Google暂停。...Google在大多数文档中建议使用预算和自动关闭云功能。好吧,猜猜是什么,到中断功能触发或通知云用户时,损坏可能已经完成了。 结算大约需要一天的时间,因此这就是我们第二天注意到收费的原因。 3....即使在收到账单通知之后,Firebase控制台的仪表板仍然表示该月有42,000次读写(低于每日限制)。...因为我们没有删除服务(这是我们第一次使用Cloud Run,那时我们还不太了解),所以多个服务继续缓慢运行。 在24小时内,这些服务版本每个扩展到1000个实例,消耗了16022小时。

    42.8K10

    收到RST,就一定会断开TCP连接吗?

    服务端在收到数据包之后,第一时间会根据IP和端口从哈希表里去获取sock。 全局hash表 如果服务端执行过listen,就能从全局哈希表里拿到sock。...程序启动了但是崩了 端口不可用的场景里,除了端口未监听以外,还有可能是从前监听了,但服务端机器上做监听操作的应用程序突然崩了,此时客户端还像往常一样正常发送消息,服务器内核协议栈收到消息后,则会回一个RST...TCP监听了但崩了 这种情况跟端口未监听本质上类似,在服务端的应用程序崩溃后,原来监听的端口资源就被释放了,从效果上来看,类似于处于CLOSED状态。...此时服务端又收到了客户端发来的消息,内核协议栈会根据IP端口,从全局哈希表里查找sock,结果当然是拿不到对应的sock数据,于是走了跟上面"端口未监听"时一样的逻辑,回了个RST。...如果在第二次和第三次挥手之间,如果服务方还尝试传数据给客户端,那么客户端不仅不收这个消息,还会发一个RST消息到服务端。直接结束掉这次连接。 对方没收到RST,会怎么样?

    2.1K22
    领券