Firebase 云信息传递

CodeAdventurerX
• 阅读 4382

Firebase 云信息传递 (FCM) 是一种跨平台消息传递解决方案,可供您免费、可靠地传递消息。

本文旨在对FCM连接配置做一个快速、简短有效的说明,了解FCM在项目中的使用。

主要功能

  • 发送通知消息或数据消息
  • 通用消息定位
  • 从客户端应用发送消息

工作原理:FCM 实现包括用于发送和接收的两个主要组件

  • 一个可信赖的环境,例如 Cloud Functions for Firebase 或用于构建、定位和发送消息的应用服务器
  • 接收消息的 iOS、Android 或网页 (JavaScript) 客户端应用

您可以通过 Admin SDK 或 HTTP API 和 XMPP API
发送消息。为了测试或发送具有强大内置定位和分析功能的营销或互动消息,您还可以使用通知编辑器。

IOS

面向 iOS 应用的设置
对于 iOS 客户端应用,您可通过两种互补的方式实现 Firebase 云消息传递:

  • 通过 Firebase 云消息传递 APNs 接口接收不超过 4KB 的基本推送消息。
  • 在前台应用中发送上行消息和/或接收下行数据负载,最高 4KB。

Firebase 云消息传递中的方法调配

FCM SDK 在两个关键环节执行方法调配:映射 APNs 令牌到 FCM 注册令牌,以及在下行消息回调处理期间捕获分析数据。

将 Firebase 添加至您的 iOS 项目

  1. 将 Firebase 添加至您的应用
  2. 添加 SDK
  3. 上传您的 APNs 身份验证密钥
  4. 在您的应用中初始化 Firebase
  5. 注册以接收远程通知

获取注册令牌

  1. 检索当前注册令牌
  2. 监控令牌的生成
  3. 导入现有的用户 APNs 令牌

Android

面向 ANDROID 应用的设置

  1. 设置 Firebase 和 FCM SDK
  2. 修改您的应用清单
  3. 获取设备注册令牌
  4. 检查 Google Play 服务

FCM服务器

Firebase 云消息传递的服务器端包含两个组件

  • 由 Google 提供的 FCM 服务器
  • 应用服务器或其他受信任的环境,例如 Cloud Functions for Firebase

受信任的服务器环境的作用

为了能编写使用 Firebase 云消息传递的客户端应用,您必须拥有一个满足以下标准的服务器环境

  • 能够与您的客户端通信。
  • 能够向 FCM 服务器发送格式正确的消息请求。
  • 能够使用指数退避算法处理请求和重新发送请求。
  • 能够安全存储服务器密钥和客户端注册令牌。请注意,切勿在任何客户端代码中包含服务器密钥。
  • 对于 XMPP,服务器必须能生成消息 ID 来唯一标识它发送的每条消息(FCM HTTP 连接服务器会生成消息 ID
    并在响应时返回这些 ID)。XMPP 消息 ID 对于每个发送者 ID 而言都应是唯一的。

参考链接:Google Firebase 云信息传递说明文档

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
Java服务器端实现FCM海外APP推送服务
参考资源Firebase云消息传递官网(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Ffirebase.google.cn%2Fdocs%2Fcloudmessaging%3Fhl%3Dzhcn)com.google.firebase.messagingAPI这个链接要
Stella981 Stella981
3年前
Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
背景对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信。对于Android开发者来说,经常使用的消息传递方式有很多种,从最早使用的Handler、BroadcastReceiver、接口回调,到近几年流行的通
Stella981 Stella981
3年前
Android中的常见通信机制和Linux中的通信机制
HandlerHandler是Android系统中的一种消息传递机制,起作用是应对多线程场景。将A进程的消息传递给B线程,实现异步消息处理。很多情况是将工作线程中需要更新UI的操作消息传递给UI主线程,而实现更新UI操作。因为工作线程和主线程是共享地址空间,即Handler实例对象mHandler位于线程间共享的内存堆上,工作线程和主线
Stella981 Stella981
3年前
ROS 多个传感器 publish 同一个Topic
梳理一下概念ROSNode之间进行通信所利用的最重要的机制就是消息传递,在ROS中,消息有组织的(其实就是定义Msg格式)放到Topic里进行传递Publisher1.生成信息,通过ROSTopic与其它Node进行通信。2.通常用于处理原始的传感器信息,如相机、编码器等。Subsc
Stella981 Stella981
3年前
Nginx之进程间的通信机制(共享内存、原子操作)
1\.概述Linux提供了多种进程间传递消息的方式,如共享内存、套接字、管道、消息队列、信号等,而Nginx框架使用了3种传递消息的传递方式:共享内存、套接字、信号。在进程间访问共享资源时,还需要提供一种机制使各个进程有序、安全地访问资源,避免并发访问带来的未知结果。Nginx主要使用了3种同步方式:原子操作、信号量、
Stella981 Stella981
3年前
MQ study
1\.什么是MQ?消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同
Stella981 Stella981
3年前
RabbitMQ 消息中间件搭建详解
1.RabbitMQ简介消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包
Wesley13 Wesley13
3年前
Java 内存模型基础
一、并发编程模型的两个关键问题1\.线程之间如何通信通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,通过写读内存中的公共状态进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消息来显式
Wesley13 Wesley13
3年前
IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1、引言消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一。消息从发送者到接收者的典型传递方式有两种:1)一种我们可以称为即时消息:即消息从一端发出后(消息发送者)立即就可以达到另一端(消息接收者),这种方式的具体实现就是平时最常见的IM聊天消息;
消息丢失排查方法?
遇到丢消息问题,如果是单聊,群聊,聊天室,系统消息可以在开发者后台北极星自助查询一下消息是否发送成功。根据您实际发送的相关信息(发送者、接收者、时间、消息ID……)看是否可以查到消息如果消息查不到一般有几种可能:信息有误(获取token的用户id跟您系统中