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

如何将来自fcm firebase的推送通知保存到hive db,在flutter的后台

开发中,可以通过以下步骤将来自FCM Firebase的推送通知保存到Hive数据库,并在Flutter的后台进行处理:

  1. 首先,确保你已经在Flutter项目中集成了Firebase Cloud Messaging (FCM)。可以参考Firebase官方文档来完成集成。
  2. 在Flutter项目中引入Hive数据库的依赖。可以在pubspec.yaml文件中添加以下依赖:
代码语言:txt
复制
dependencies:
  hive: ^2.0.0
  hive_flutter: ^1.1.0

然后运行flutter pub get命令来获取依赖。

  1. 创建Hive数据库模型类来表示推送通知的数据结构。例如,可以创建一个名为PushNotification的类:
代码语言:txt
复制
import 'package:hive/hive.dart';

part 'push_notification.g.dart';

@HiveType(typeId: 0)
class PushNotification extends HiveObject {
  @HiveField(0)
  late String title;

  @HiveField(1)
  late String body;

  @HiveField(2)
  late String imageUrl;
}
  1. 生成Hive适配器。运行以下命令来生成适配器:
代码语言:txt
复制
flutter packages pub run build_runner build

这将生成一个名为push_notification.g.dart的文件,其中包含自动生成的适配器代码。

  1. 初始化Hive数据库。在应用程序的入口文件中,添加以下代码来初始化Hive数据库:
代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';

void main() async {
  await Hive.initFlutter();
  Hive.registerAdapter(PushNotificationAdapter());
  await Hive.openBox<PushNotification>('push_notifications');

  runApp(MyApp());
}

这将初始化Hive并注册PushNotification适配器,并打开一个名为push_notifications的Hive盒子。

  1. 处理FCM推送通知。在Flutter项目中,可以使用firebase_messaging库来处理FCM推送通知。在适当的位置,添加以下代码来处理推送通知并将其保存到Hive数据库:
代码语言:txt
复制
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:hive/hive.dart';

final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance;

void configureFirebaseMessaging() {
  _firebaseMessaging.requestPermission();
  _firebaseMessaging.getToken().then((token) {
    print('FCM Token: $token');
  });

  FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    print('Received FCM message: ${message.notification?.title}');

    final pushNotification = PushNotification()
      ..title = message.notification?.title ?? ''
      ..body = message.notification?.body ?? ''
      ..imageUrl = message.notification?.imageUrl ?? '';

    final box = Hive.box<PushNotification>('push_notifications');
    box.add(pushNotification);
  });
}

这段代码将请求用户授权并获取FCM令牌,然后监听接收到的FCM消息,并将其保存到Hive数据库中。

  1. 在后台处理推送通知。在后台处理推送通知的逻辑可以根据具体需求进行实现。你可以在应用程序的其他部分访问Hive数据库中保存的推送通知数据,并根据需要进行处理。

这是一个基本的示例,演示了如何将来自FCM Firebase的推送通知保存到Hive数据库,并在Flutter的后台进行处理。根据具体需求,你可以进一步扩展和优化这个过程。

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

相关·内容

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

gradle 也就是 app 下的 gradle 添加对此依赖: // 友盟推送 apply from: 'UMeng_Push.gradle' 1.2 初始化友盟推送并设置通知栏点击动作 在 Application...} 很多时候我们都希望,即使用户当前未使用 App,或者说当前的 App 处于被杀死的状态,后台推送消息依然想被前台接收。...3.3 FCM 消息处理 在 app build 中完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4...' // FCM Message 处理 implementation 'com.google.firebase:firebase-messaging:20.2.2' // FCM Message 后台处理...接入推送,不得不说 Mob 做的贼优秀,直接 Flutter 插件搞起,大大的方便了 Flutter 开发者,先比个小心心~ ❤️ 附上 Mob 插件地址: pub.dev/packages/mo…

11.5K41

Android应用保活全攻略:30个实用技巧助你突破后台限制

在Android系统中,保活(保持应用进程一直存活)就是为了让应用在后台持续运行,来实现某些特定的功能,如实时消息推送、定位服务等。...这些推送服务通常使用保活技巧,可以保证消息的实时推送。 7. 静态广播监听 在AndroidManifest.xml中注册静态广播,监听系统广播,如电池状态改变、屏幕解锁等。...为了保证应用在这些模式下正常运行,你需要适配这些特性,如使用高优先级的Firebase Cloud Messaging(FCM)消息来唤醒应用。 17....使用Firebase Cloud Messaging(FCM) 对于需要实时消息推送的应用,可以使用Firebase Cloud Messaging(FCM)服务。...FCM是一种跨平台的消息推送服务,可以实现高效且可靠的消息传递。通过使用FCM,你可以确保应用在后台时接收到实时消息,而无需采取过多的保活手段。 18.

1.7K21
  • APP消息推送方案调研

    介绍消息类型推送服务支持通知栏消息和透传消息通知栏消息通知栏消息由系统通道直接下发,消息将在终端的通知中心下拉列表呈现,不需要应用进程驻留后台,用户点击通知栏消息后会触发相应的动作,如打开应用、打开网页等...使用GCM推送服务的whatsapp即使后台程序和服务都关闭掉,也依然可以在第一时间接收到新消息的推送(实测在国内whatsapp也的确可以在后台关闭的情况下正常通过GCM接受实时消息)。...像 Line 的 Android 版本可以在推送通知的 Popup 上直接回复, iOS 就需要越狱才能做到了。...这些令牌是设备与FCM服务交互的唯一标识符。以下是获取这些令牌的步骤:集成Firebase SDK:首先,确保你的应用已经集成了Firebase SDK。...获取Firebase实例ID:在应用中,使用Firebase实例ID服务来获取一个唯一的标识符。这个服务会处理令牌的生成和刷新。

    40110

    Android P正式版即将到来:后台应用保活、消息推送的真正噩梦

    题外话:实际上,对于后台消息推送能力,Android原版系统早就内置了系统级推送服务(跟iOS上的APNs服务是一个东西),它就是GCM服务(现在升级为FCM了),但众所周之的原因,谷哥的服务在国内都是用不了的...(有关GCM的介绍详见:《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》、《为何微信、QQ这样的IM工具不使用GCM服务推送消息?》...,国内主流的Android手机厂商在阉割了谷歌原版的GCM(FCM)推送通道之后(悲剧!)...如果您错误的将没有与用户进行互动的 FCM 消息设置为高优先级,这种标记不当的行为可能会导致其他不良后果,比如:在应用耗尽高优先级消息额度之后,系统会把真正紧急的 FCM 消息当做“普通优先级”消息来处理...8、Andriod P电量管理特性2:后台限制 当系统监测到应用消耗过多资源时,系统会通知并询问用户是否需要限制该应用的后台活动。

    3.9K30

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

    Messaging FCM是谷歌推出的最新的Android系统级别的消息推送服务(用来替换GCM)。...之前的C2DM(Android Cloud to Device Messaging)已与2012年6月26日被正式弃用。 注:国内可接收FCM推送,但必须安装谷歌服务。具体操作请参考官方文档。...如果您希望在后台进行接收应用通知之外的任何消息处理,则必须添加此服务。要在前台应用中接收通知、接收数据负载以及发送上游消息等,您必须扩展此服务。...hl=zh-cn#send-downstream demo http://www.jianshu.com/p/5d1982dd588b 注意 当firebase推送的时候,是分当前应用在前后台两种情况的...处理方式:在后台的情况下你需要在应用的主Activity的onCreate方法中调用getIntent.getExtra()方法才能拿到推送到的参数 server 端建置 Google

    12.9K30

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

    主要有两种类型的通知: 前台通知:当应用程序正在打开并运行时发送给用户的通知 后台通知:无论应用程序是否当前打开,都会发送 推送通知在移动应用开发世界中非常流行,原因有很多。...原生平台特定的通知服务(FCM/APNs) Android和iOS平台都提供了用于接收推送通知的原生平台特定API 适用于安卓设备的Firebase云消息传递(FCM) 苹果推送通知服务(APNs)适用于...iOS设备 我们可以使用React Native Firebase库来在Android上集成FCM,使用 push-notification-ios 库来在iOS上集成APNs。...React Native Firebase 库也提供了一种通过 FCM 在iOS上发送推送通知的方法。...可以从Node.js服务器通过 firebase-admin 和 node-apn 向注册的移动设备发送远程通知 Expo推送通知和其他云服务 FCM 和 APNs 都是特定平台的原生推送通知服务。

    1.4K10

    Flutter应用集成极光推送

    在原生iOS开发中,为了简化消息推送,苹果推送服务(简称APNs)接管了系统所有应用的消息通知需求,任何第三方消息推送都需要经过推送服务进行转发。...对于原生Android平台来说,则可以使Google提供的类似Firebase云消息传递机制来实现统一的推送托管服务。...具体来说,当某个应用需要发送消息推送时,消息会由应用的服务器先发给苹果或Google的消息推送服务器,然后经由APNs或FCM(Google的消息推送框架)发送到设备,设备接收到消息后经过系统层面完成解析...由于第三方推送服务厂商提供的功能和接入流程大都一致,考虑到极光的社区和生态相对活跃,并且在国内较早的推出Flutter插件,所以我们可以在Flutter项目中直接使用这个插件,下图是极光推送的架构示意图...然后,在极光开发者服务后台上传申请到的推送证书,如下图所示。 配制好证书后,运行 Flutter 项目于 iphone 手机上,如下图所示。

    33510

    Flutter 3.7 新特性:介绍后台isolate通道

    社区多年来一直致力于使用插件来访问代码(非 Dart 实现),例如 path_provider 找到临时目录的能力或 flutter_local_notifications 发布通知的能力。...在我帮助谷歌其他团队使用 Flutter 的过程中,随着产品的演进,最终会不可避免地遇到 root isolate 瓶颈。 因此,我们需要确保在框架中优化,并为开发者提供工具使其在必要时做更少的事。...下面是后台 isolate 一个人为的用例: 试想,一个应用程序可通过人工智能根据文本提示生成高分辨率图像。用户之前创作都被存储在 Firebase Cloud 中,需求是用户可以用手机随时分享创作。...该 Flutter 应用启动时会开启一个后台 isolate 从 Firebase Cloud Store 下载 8K 文本提示相关图片,将图像压缩至指定规格大小导出,保存到相册,最后导出完成并发送通知...在此示例中,后台 isolate 至少使用了 3 个插件,一个用于从 Firebase Cloud Storage 中请求数据;接着保存到手机相册,保存完毕发送本地通知告诉用户。

    4.2K40

    使用 FCM 通知您的用户

    本文将解释何时以及如何生成这些远程通知,以便为用户提供及时更新并尽量省电。 用 FCM 实现远程通知 我们推荐使用 Firebase 云消息 (FCM) 发送远程通知到 Android 设备。...数据消息,适用于在客户端应用内处理 FCM 消息。 您可以把数据信息的优先级设为高或普通。如需进一步了解 FCM 消息和消息处理,可参阅 Firebase 博客上的这篇文章。...先发布一个通知 如果您需要发送远程通知,则应始终在收到 FCM 消息后尽快发布通知。如果在发布通知前添加任何额外网络请求,都会导致发送给某些用户的通知延迟。...应用的 jobs 和 alarmas 可能被延迟,且访问网络的功能可能被限制。 因此,为确保及时传递通知,应始终在收到 FCM 消息后立即显示通知,然后再进行网络获取或调度任务等其他工作。...避免后台服务 常见错误是在 FCM 的 handler 中使用后台服务,因为根据 Google Play 政策近期变更 (自 2018 年末起,Google Play 将要求最低目标 API Level

    3.5K30

    uni-app 如何实现消息推送功能?

    概述 产品介绍 UniPush是DCloud联合个推公司推出的集成型统一推送服务,内建了苹果、华为、小米、OPPO、VIVO、魅族、谷歌 FCM 等手机厂商的系统级推送和个推等第三方推送。...国内Android的Push是一个混乱的世界,因为Google的Push服务FCM 被墙(从HBuilderX2.7.10开始,支持谷歌FCM,参考: UniPush支持谷歌推送FCM配置指南),所以一些国内的安卓手机厂商各自做了自己的推送...三方独立公司如个推,则提供了独立的 push 方案。 在没有UniPush以前,如果只使用三方push,会在很多国产手机上因为节电设置而无法保活push进程,导致无法推送。...系统会自动在不同手机上选择最可靠的推送通道发送push消息,保障送达率。 UniPush即降低了开发成本、又提高了push送达率,并且免费,是当前推送的最佳解决方案。...技术架构 名词解释 名词 解释 通知消息 指定通知标题和内容后,由个推SDK自动处理在系统通知栏中展示通知栏消息,同时响铃或震动提醒用户(响铃和震动受手机系统的设置状态影响)。

    5.9K22

    h5的Notification 、web Push介绍

    当它被触发时,它将显示在通知窗口的顶部。...浏览器在接收到推送服务器发来的推送后,将其解码并触发一个push事件。...FCM官方是这么介绍的: Firebase 云信息传递 (FCM) 是一种跨平台消息传递解决方案,可供您免费、可靠地传递消息。 使用 FCM,您可以通知客户端应用存在可同步的新电子邮件或其他数据。...这个意义是很大的,因为Android的推送一直都比较乱,国内有些APP使用小米的Push服务,有些使用百度的,还有些使用腾讯的信鸽等等,这些Push都需要在后台运行线程,并且不能休眠,这就导致了手机在休眠状态时仍然有很多线程在运行着...(3)发送推送 发送推送可以用FCM提供的web push的库,它支持多种语言,包括Node.js/PHP等版本。

    4.8K20

    与 FireBase 亲密接触

    正常的 App 都是属于网络应用,数据都是从服务器上获取的。这就需要有专业的后台开发人员开发后台业务服务器,然后为我们 App 提供数据。...其旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。国内比较出名的厂商有友盟、BMob等,国外就 Firebase 名气比较大。...Firebase Cloud Messaging(FCM):是一个跨平台Android、iOS 和网站的解决方案,供我们免费可靠地发送和接收消息和通知。...通过一次操作,我们可以跨越各种各样的设备和设备配置发起应用测试。 Crash Reporting:在我们发布应用之后接收关于稳定性问题的可操作信息。 Notifications:轻松管理通知活动。...2)将 Firebase 添加到 Android 应用 在新建项目之后,你会在左上角看到你项目名称,我新建的项目是 Game2048。

    16K00

    融云技术分享:融云安卓端IM产品的网络链路保活技术实践

    本文来自融云技术团队原创分享,原文发布于“ 融云全球互联网通信云”公众号,原题《IM 即时通讯之链路保活》,即时通讯网收录时有部分改动。...》 《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》 《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》 《全面盘点当前Android后台保活方案的真实运行效果...iOS 手机有 APNS 来达到以上效果(详见《了解iOS消息推送一文就够:史上最全iOS Push技术详解》),但安卓的官方推送系统 FCM 在国内基本不可用。...1.2)双服务守护: A 服务以 startForeground() 形式启动,发送一个通知, B 服务同样以 startForeground() 形式启动,且发送和 A 相同 ID 的通知,然后在...鉴于Android系统对后台进程管控越来越严,保活“黑科技”已经不怎么灵了: 《Android P正式版即将到来:后台应用保活、消息推送的真正噩梦》 《全面盘点当前Android后台保活方案的真实运行效果

    3K40

    消息通知(Notification)用户触达系统设计

    通常,根据接收者的特征 1 通知格式分类 移动推送通知 短信 电子邮件 网页推送通知 第三方应用通知(类似 Slack、钉钉的应用) 2 功能需求 系统支持推送通知、短信、电子邮件和第三方应用通知。...然而,若系统负载过高,轻微延迟也可接受 支持的设备:移动设备(iOS 和 Android)以及笔记本电脑/台式机 通知可以由客户端应用程序事件触发,也可以在服务器端进行计划 用户可以选择不再接收将来的通知...然后,系统应该以以下组件结构化: 不同通知类型的配置 收集联系信息流 通知发送和接收流 4 不同通知类型的高级设计与AWS 每种通知类型在高级层面上的工作原理。...4.4 Android推送通知 使用SNS + FCM的Android推送通知 Android有类似通知流。...与使用APNS不同,使用Firebase Cloud Messaging(FCM)向Android设备发送推送通知。

    1.1K10

    Firebase Remote Config

    这样一来,您可以先验证改进,然后再将其推向整个用户群 工作原理 Remote Config 包括一个客户端库,通过在 Firebase 控制台,可以设置相关参数与条件,在适当的时机触发相关逻辑处理,...应用在获取服务器端值时所使用的逻辑与在获取应用内默认值时相同,因此无需编写大量代码 如需替换应用内默认值,您可以使用 Firebase 控制台或 Remote Config 后端 API 来创建与应用中使用的参数同名的参数...务必设置应用内默认参数值,确保应用始终按预期运行 实时传播 Remote Config 更新 与远程推送相结合 步骤 APP 订阅主题(以主题的形式给部分用户发送远程通知,如果需求不区分用户群,直接发全部用户的远程通知即可...服务器推送通知,携带信息中包含提示让用户更新 Remote Config 状态的信息 在客户端设置 Remote Config 状态 接收到推送通知后,设置本地现有 Remote Config 为旧版...控制台的信息,如果传入300(5分钟),那么在5分钟之后才可以请求到 Firebase 控制台的最新信息,5分钟之内都是之前的旧信息 - (void)fetchConfig { long expirationDuration

    68310

    Android P 电量管理

    具体操作指南,请参照 Material Design 中有关推送设计的章节。 若应用在接受高优先级的 FCM 消息之后未能发送推送,用户将无法与应用产生互动并将其优先级提升至 “活跃” 等级。...其实,高优先级 FCM 消息的唯一用途就是向用户发送推送,因此这种情况绝对不应该出现。...如果您错误的将没有与用户进行互动的 FCM 消息设置为高优先级,这种标记不当的行为可能会导致其他不良后果,比如:在应用耗尽高优先级消息额度之后,系统会把真正紧急的 FCM 消息当做“普通优先级”消息来处理...后台限制 当系统监测到应用消耗过多资源时,系统会通知并询问用户是否需要限制该应用的后台活动。...目前有以下两种情况会触发系统发送此通知: 频繁使用唤醒锁 (wake locks):屏幕关闭后,局部唤醒锁 (Partial wake lock) 连续开启 1 小时; 过多的后台服务:当应用目标 API

    2.1K30

    几款设计精美的常用的Flutter应用程序模板

    Flutter是目前最火的移动应用开发技术,下面就推荐几款非常出色的Flutter应用模板。 1)基于材料设计的Flutter模板 基于材料设计库的多用途Flutter模板,用于个人和商业项目。...所有组件和布局均基于Google在《材料设计指南》中描述的原则。 多用途Flutter模板是最大的移动模板,具有周到的用户流和现代化的新颖设计。该模板用于连接在线商店的后端。...该模板有着非常出色的便利性。 2)基于Firebase的事件管理模板 Flutter事件应用程序模板可用于Android和iOS设备中的事件管理应用程序,易于设置和入门。...该应用程序具有用于通过Google Directions服务指南连接的驱动程序的内置导航器。已创建一个个人账户,其中包含有关驾驶员出行的统计信息。有一个带有付款通知和屏幕的系统。...有一个现成的Facebook登录系统和一个SMS注册系统。有来自Firebase的分析和推送通知系统。与服务器即时同步。引入了商品类别和属性的过滤器,开发了订购系统。

    4.5K40

    基于APNs最新HTTP2接口实现iOS的高性能消息推送(服务端篇)

    这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯聊天应用:聊天消息通知、音视频聊天呼叫等,典型代表有:微信、QQ、易信、米聊、钉钉、Whatsup、Line...,原因是国内的Android厂商将Android原生的GCM(现在叫FCM,跟iOS的APNs是类似的技术)进行了阉割,加上各厂商的省电策略、这全策略各不相同,导致为了实现IM和其它各种应用中的后台消息推送...国内的厂商为了跟进新版本Android的GCM(现在叫FCM),也都在搞自已的消息推送通道:小米手机有小米推送、魅族手机有魅族推送、华为手机有华为推送等等,开发者在放弃保活黑科技以后,只能一家一家接入各厂商的推送通道...就算是微信和QQ这种用户级别的即时通讯app在程序没有启动或者后台运行过程中也是需要使用APNs的(当程序启动时,使用自己建立的长连接),只不过腾讯优化了整条从他们服务器到苹果服务器的线路而已,所以觉得推送要快...《微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)》 《微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)》 《移动端IM实践:实现Android版微信的智能心跳机制

    5.2K30

    Flutter封装阿里push

    仓库地址:dalipush 因为阿里的推送对小米和华为的离线推送兼容的比较好,因此,我使用flutter将阿里推送封装了一下,效过图,如下所示,这里是将进程杀死之后,小米设备收到的推送效果。...移动推送在初始化过程中将启动后台进程channel,必须保证应用进程和channel进程都执行到推送初始化代码。 如果设备成功注册,将回调callback.onSuccess()方法。...,是一种黑科技,可以在进程杀死的情况下,收到推送消息,所谓的离线推送, /////如果需要,注意读一下下面一节,服务端代码那块,如果不需要,直接注释2行,可以满足app在线收到通知...HuaWeiRegister.register(this); //GCM/FCM辅助通道注册,这个地方打开的情况我没测试,不过,GCM你懂的。...,后台按照阿里推送的文档部署好了之后,你可以做成管理端,并封装这样的一个接口,来推送消息。

    9.5K92
    领券