android - Firebase 消息传递问题
问题描述
我正在尝试学习 Firebase 消息传递,以便我可以将我的应用程序(其中一个是聊天应用程序)从 GCM 迁移到 FCM。
我正在阅读文档,他们告诉我,例如,如果我要使用消息传递,我必须在我的 AndroidManifest.xml 文件中指定 .MyFirebaseMessagingService 和 .MYFirebaseInstanceIDService 。此外,我需要迁移我的 InstanceIDListenerService、可能是我的 GcmListenerService,以及可能使用 GcmPubSub。
Github 上的消息传递示例并不像聊天应用程序那样复杂——它只显示了如何手动将通知从 firebase 控制台发送到我的应用程序。
然而,在这之前,我发现并实现了 Tutorial Point 的第一个教程 是一个实际工作的聊天应用程序。它非常简单,并且不使用文档说我必须使用的任何东西。“聊天”模块有一个简单的 ChildEventListener,它会在任何时候发送或接收消息时触发。没有消息服务器,根本没有服务器。它使用 Android Volley。
教程点解决方案似乎只是正式 Firebase 文档推荐的复杂性和代码的一小部分。我错过了什么?
解决方案
听起来 Tutorial Point 的教程使用 Firebase 实时数据库来构建聊天应用程序,这与 Firebase 云消息传递有很大不同。
实时数据库主要在应用程序处于活动状态时使用,以使应用程序中的数据与云中的数据库保持同步。聊天应用程序是这个数据库的一个很好的例子,因为它们以直观的方式突出了 API 模型。
Firebase Cloud Messaging 用于向活动和非活动的应用传递消息,并向用户显示通知,即使应用不活动也是如此。
由于您正在从 GCM 迁移到 FCM,因此该教程似乎无关紧要。相反,我建议遵循Migrate a GCM Client App for Android to Firebase Cloud Messaging。
推荐阅读
- python - 使用这种帧切换方法时如何设置背景
- amazon-web-services - 自动挂起空闲的 AWS 实例
- python-3.x - How do I combine multiple datasets (.h5 files) with different dimensions sizes in xarray
- ios - UITextView 中的控制行间距
- tfs - 如何将自定义状态值添加到 Team Foundation Server 2018
- mysql - 使用 XAMPP/MariaDB (MySQL) 的 DECLARE 变量问题
- oracle - Oracle 18c 外部表从 UNC 路径导入 csv 文件
- vba - 运行时错误“1004”:您无法在此处跳过,因为复制区域和过去区域的大小不同
- php - TinyMce 不存储 html,只存储原始文本(laravel)
- elasticsearch - 无法使用弹性搜索接收器连接器(kafka-connect)