热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于Firebase平台开发(八)——使用FirebaseCloudMessaging进行PushNotification的发送和接收(一)

版本记录版本号时间V1.
版本记录
版本号 时间
V1.0 2021.04.10 星期六
前言

Firebase是一家实时后端数据库创业公司,它能帮助开发者很快的写出Web端和移动端的应用。自2014年10月Google收购Firebase以来,用户可以在更方便地使用Firebase的同时,结合Google的云服务。Firebase能让你的App从零到一。也就是说它可以帮助手机以及网页应用的开发者轻松构建App。通过Firebase背后负载的框架就可以简单地开发一个App,无需服务器以及基础设施。接下来几篇我们就一起看一下基于Firebase平台的开发。感兴趣的看下面几篇文章。
1. 基于Firebase平台开发(一) —— 基于ML Kit的iOS图片中文字的识别(一)
2. 基于Firebase平台开发(二) —— 基于ML Kit的iOS图片中文字的识别(二)
3. 基于Firebase平台开发(三) —— Firebase基本使用简介(一)
4. 基于Firebase平台开发(四) —— Firebase基本使用简介(二)
5. 基于Firebase平台开发(五) —— Firebase基本使用简介(三)
6. 基于Firebase平台开发(六) —— 基于Firebase Analytics的App使用率的跟踪(一)
7. 基于Firebase平台开发(七) —— iOS的A/B Test(一)

开始

首先我们看下写作内容:

了解如何在您的SwiftUI iOS应用中使用Firebase Cloud Messaging发送和接收远程推送通知。内容来自翻译。

接着看下写作环境:

Swift 5, iOS 14, Xcode 12

接着就是正文啦。

人们与应用程序进行交互的方式因人而异。这可能使您很难知道您的客户何时使用您的应用程序,尤其是在您需要向他们提供重要信息时。推送通知(Push notification)提供了一种统一,一致的方式来通知您的应用程序用户几乎所有内容。

要接收推送通知,您的设备需要通过接收唯一的device tokenApple Push Notification service (APNs)注册。注册设备后,您可以通过使用device tokenAPNs发送请求来向设备发送推送通知。所有这些通信都需要通过某种Web服务器进行。

您可以实现自己的Web服务来与APNs通信,但是有更简单的选择。其中之一是Firebase Cloud Messaging(FCM)。有了Firebase Cloud Messaging(FCM),您就可以轻松使用易于使用的系统! FCM处理push notifications的云方面,使您无需编写自己的Web服务即可发送和接收推送。

在本教程中,您将学习如何:

  • 设置您的SwiftUI应用,以使用Swift Package Manager通过GoogleFirebase Cloud Messaging接收推送通知
  • 通过media发送通知
  • 接收基于主题的通知
  • 通过push notification的内容向您的应用添加信息
  • 获取有关推式通知打开频率的信息

要继续学习本教程,您需要:

  • 付费的Apple Developer Program会员资格,可在您的应用程序中使用push notifications
  • 一个Google Firebase帐户。您无需支付任何费用即可完成本教程。如果您选择在生产环境中使用Firebase,则可以在关联的站点上找到定价信息pricing information。
  • 物理iOSiPadOS设备,因此您可以接收推送通知

注意:虽然您可以在模拟器上测试本地推送通知,但是您需要在物理设备上运行才能从FCM接收推送通知。

您将使用的应用程序Good News为用户提供了一个只有好消息的新闻提要。 这是因为即使世界上发生了坏事,也要记住也要发生好事!

在启动文件夹中,打开GoodNews.xcodeproj。 打开Project navigator,然后选择Good News target。 在Signing & Capabilities选项卡中,选择您的开发团队,然后输入一个新的Bundle Identifier。 现在,可以在真实设备或模拟器上进行构建和运行。

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

您会看到该应用程序具有用于向用户显示新闻文章的feed,以及一个供用户选择订阅主题的标签。


Configuring Firebase

接下来,您将学习如何配置Firebase

1. Creating the p8 Certificate

Firebase要求您将p8证书上传到您的应用程序。 这是一个特殊文件,其中包含允许Firebase发送通知的私钥。 要获取p8证书,请登录Apple Developer。

选择Certificates, Identifiers & Profiles,然后转到Keys。 选择圆圈+按钮以创建新的key

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

给它命名并启用Apple Push Notifications service (APNs)服务。 选择Continue,然后在下一个屏幕上选择Register

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

请务必在此屏幕上记下以下三个项目:

  • 选择Downloadp8文件保存在本地。 您需要将其上传到Firebase。 退出此屏幕后,您将无法下载此文件(You cannot download this after leaving this screen)
  • Key ID复制并保存到文件中。
  • 复制并保存您的Apple membership ID。 该名称位于Membership Center右上角下的您的姓名旁边或Membership Details下面。
基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

2. Setting up the Firebase Project

接下来,转到您的Firebase帐户,然后选择页面右上角的Go to console。 选择Add project,然后执行以下操作来创建您的项目:

  • 使用名称Good News
  • 启用Google Analytics
  • 选择Google Analytics的名称和国家/地区。
  • 使用默认的分析设置。

注意:如果您不需要跟踪用户与推送通知的交互方式,则可以禁用Google Analytics(分析)并跳过设置。

然后,您需要使用Apple p8和会员信息配置Firebase。 在您的Firebase项目中,选择Project Overview旁边的齿轮,然后选择Project settings

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

接下来,在项目设置的General部分下设置一个iOS应用:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

从那里转到应用程序配置页面:

  • 为您的项目添加Bundle Identifier
  • 如果需要,可以将App nicknameApp Store ID保留为空白。

注册您的应用程序后,下载GoogleServices-Info.plist。 稍后,您需要使用此功能在您的应用中配置Firebase。 您可以为其余步骤选择Next。 您将不会使用CocoaPods,并且现在您可以忽略将初始化代码添加到您的应用程序的步骤。

接下来,转到Firebase项目设置中的Cloud Messaging,上传您的p8证书。 在APNs Authentication Key下,选择Upload

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

您会看到一个弹出窗口,要求您:

  • 上载从Apple下载的.p8文件。
  • 输入创建p8时保存的Key ID
  • 输入您的Apple membership ID

选择Upload以完成Firebase项目的设置。

3. Adding the Package

现在,您将使用Swift Package ManagerFirebase依赖(dependency)项添加到您的项目中。在Xcode中,选择File ▸ Swift Packages ▸ Add Package Dependency…。在Choose Package Repository弹出窗口中,输入https://github.com/firebase/firebase-ios-sdk.git

选择Next,保留默认选项,直到出现包含软件包列表的屏幕。 Xcode下载必要的数据时可能会花费一些时间。从列表中选择以下软件包:

  • FirebaseAnalytics
  • FirebaseMessaging

如果您不想收集有关用户如何使用推送通知的信息,请随时取消选中FirebaseAnalytics。添加这些软件包后,可能需要花费几分钟来添加和构建依赖关系。

注意:在撰写本文时,Firebase的最新版本是7.3

接下来,将GoogleService-Info.plist添加到您的Xcode项目的Assets组中的项目:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

最后,您可以开始向您的应用添加代码!

4. Configuring Your App

首先打开Info.plist并添加以下条目:

  • Key: FirebaseAppDelegateProxyEnabled
  • Type: Boolean
  • Value: NO (Xcode will show this as 0)
基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

默认情况下,FirebaseMessaging使用method swizzling处理推送通知。 您将自己处理所有代码,因此请使用刚添加的plist条目将其关闭。

接下来,您将一个app delegate添加到您的项目中,该委托将负责设置push notifications。 创建一个名为AppDelegate.swift的新文件,并将其代码替换为以下代码:

import UIKit
import Firebase
import FirebaseMessaging
import FirebaseAnalytics

class AppDelegate: NSObject, UIApplicationDelegate {
  func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions 
      launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
  ) -> Bool {
    return true
  }
}

在上面的代码中,您首先导入必要的Firebase框架,然后实现UIApplicationDelegate协议。

接下来,在AppMain.swift中的AppMain中添加一个新属性:

@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

这将使SwiftUI知道您新创建的应用程序代理。 现在,您可以开始配置Firebase

5. Launching Firebase

return之前,再次打开AppDelegate.swift并将以下内容添加到application(_:didFinishLaunchingWithOptions :)中:

// 1
FirebaseApp.configure()
// 2
FirebaseConfiguration.shared.setLoggerLevel(.min)

这是这样做的:

  • 1) 它将您的应用程序配置为可与Firebase一起使用。
  • 2) 它设置Firebase将记录的数量。 将此设置为min会减少您在调试器中看到的数据量。

由于您不希望Firebase通过swizzling自动处理notification code,因此您需要遵守UNUserNotificationCenterDelegate。 将以下内容添加到AppDelegate.swift的末尾:

extension AppDelegate: UNUserNotificationCenterDelegate {
  func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    willPresent notification: UNNotification,
    withCompletionHandler completionHandler:
    @escaping (UNNotificationPresentationOptions) -> Void
  ) {
    completionHandler([[.banner, .sound]])
  }

  func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse,
    withCompletionHandler completionHandler: @escaping () -> Void
  ) {
    completionHandler()
  }
}

当通知到达或用户与之交互时,用户通知中心将调用这些方法。 您稍后再与他们合作。

6. Registering for Notifications

在配置了Firebase的情况下,您可以开始注册以接收通知。 将以下方法添加到UNUserNotificationCenterDelegate扩展中:

func application(
  _ application: UIApplication,
  didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
  Messaging.messaging().apnsToken = deviceToken
}

当用户授予推送通知权限时,APNs将生成并注册token。 该token标识单个设备,因此您可以向其发送通知。 您将使用Firebase分发通知,此代码使该tokenFirebase中可用。

现在,您可以在return之前将以下内容添加到application(_:didFinishLaunchingWithOptions :)中:

// 1
UNUserNotificationCenter.current().delegate = self
// 2
let authOptions: UNAuthorizatiOnOptions= [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
  options: authOptions) { _, _ in }
// 3
application.registerForRemoteNotifications()

代码是这样的:

  • 1) 将AppDelegate设置为UNUserNotificationCenter的代理。 在上一步中,您实现了必要的代理方法。
  • 2) 创建与您的应用程序将请求哪种推送通知权限相关的选项。 在这种情况下,您需要alerts, badges and sound
  • 3) 注册您的应用以获取远程通知。

接下来,在文件底部添加以下扩展名:

extension AppDelegate: MessagingDelegate {
  func messaging(
    _ messaging: Messaging,
    didReceiveRegistrationToken fcmToken: String?
  ) {
    let tokenDict = ["token": fcmToken ?? ""]
    NotificationCenter.default.post(
      name: Notification.Name("FCMToken"),
      object: nil,
      userInfo: tokenDict)
  }
}

MessagingFirebase的类,用于管理与推送通知相关的所有内容。 像许多iOS API一样,它具有一个称为MessagingDelegate的代理,您可以在上面的代码中实现该代理。 每当您的应用程序启动或Firebase更新您的token时,Firebase都会调用您刚添加的方法以使应用程序与其保持同步。

现在,在return之前,将以下内容添加到application(_:didFinishLaunchingWithOptions :)

Messaging.messaging().delegate = self

这会将AppDelegate设置为Messaging的代理。

您已经很接近了 —— 仅需一步就可以准备好您的应用。 在Xcode中,打开应用程序的项目设置,然后转到Signing & Capabilities。 选择+ Capability按钮。 在字段中搜索Push Notifications,然后按Enter

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

7. Sending Notifications

您的应用现在可以接收通知了! 在真实设备上构建并运行。 它的外观应与以前相同,但带有alert,要求您允许向您发送通知。 确保选择Allow

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

现在,转到您的Firebase项目,然后选择在Engage下找到的Cloud Messaging。 然后选择Send your first message

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

Step 1下,输入以下内容:

  • Notification title: Notification Test
  • Notification text: This is a test

接下来,从Step 2的下拉列表中选择您的应用:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

使用Cloud Messaging控制台时,这将针对您的特定应用程序。

最后,选择Review,然后选择Publish。 在您的设备上,您会看到以下通知:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

注意:如果您没有收到通知,请按照说明进行操作,以完成所有设置。 您可能错过了设置或无法上传.p8文件。 此外,您可以在AppDelegate.swift中实现application(_:didFailToRegisterForRemoteNotificationsWithError :),以打印出注册通知期间可能发生的任何错误。


Sending Data in Notifications

Firebase使通过Cloud Messaging控制台轻松发送通知中的其他数据成为可能。 在下一部分中,您将向通知有效内容中添加数据,以便在通知到达时向新闻源中添加新闻故事。

首先,在AppDelegate.swift中,在UNUserNotificationCenterDelegate扩展内添加以下代码:

private func process(_ notification: UNNotification) {
  // 1
  let userInfo = notification.request.content.userInfo
  // 2
  UIApplication.shared.applicatiOnIconBadgeNumber= 0
  if let newsTitle = userInfo["newsTitle"] as? String,
    let newsBody = userInfo["newsBody"] as? String {
    let newsItem = NewsItem(title: newsTitle, body: newsBody, date: Date())
    NewsModel.shared.add([newsItem])
  }
}

这是您添加的内容:

  • 1) 这将在notification payload中获取所需的信息。
  • 2) 如果userInfo具有创建新闻项的值,则此代码创建一个新闻项并将其添加到启动程序项目的新闻提要中。

然后,在调用completionHandler之前,将以下内容添加到userNotificationCenter(_:willPresent:withCompletionHandler :)

process(notification)

每当您在应用程序处于前台时收到通知时,都会调用userNotificationCenter(_:willPresent:withCompletionHandler :)。 这样可以确保在用户使用您的应用程序时,在收到新通知时添加新闻项。

然后,在调用completionHandler之前,将以下代码添加到userNotification(_:didReceive:withCompletionHandler :)

process(response.notification)

用户点击通知时将调用userNotification(_:didReceive:withCompletionHandler :)。 同样,只要发生这种情况,您都会添加一个新闻项目。

构建并运行。 该应用看起来与以前相同,但可以处理其他通知数据。

返回控制台,创建一个新的通知。 和以前一样,输入通知标题和文本,然后选择您的应用程序。 然后转到Step 5,并在Custom data下添加以下项目:

  • Key: newsTitle
  • Value: Child Saves Kittens

这将向应用程序发送标题。 现在,添加主体的条目:

  • Key: newsBody
  • Value: Local child saves kittens from a tall tree

您添加的键和值将作为通知的userInfo发送,您将在process(_:)中进行解析。 发送通知。 如果您打开了应用程序,或者在到达通知时点按了通知,则您将在Feed中看到新的新闻项。

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

还可以处理来自后台进程的通知,而无需用户进行任何交互。 虽然这不在本教程的讨论范围之内,但我们的 Push Notifications video course 视频课程以及Push Notifications by Tutorials book 一书涵盖了对推送通知和其他许多主题的后台处理。


Subscribing to Topics

Firebase Cloud Messaging的另一个功能是订阅主题,这是一种使用户灵活自定义通知的好方法。 Firebase允许您使用主题标记特定的推送通知。 然后,您可以为您的用户订阅不同的主题。 例如,也许用户对诸如直接消息之类的重要通知感兴趣,但无需通知您应用程序feed中新的投递。 或者,您可以让您的用户关注特定的帖子或人员,接收有关群聊的推送通知,等等。

幸运的是,这很容易做到。 首先,打开TopicsModel.swift并在顶部添加以下导入:

import FirebaseMessaging

入门项目包括一个开关,该开关使用户可以切换他们感兴趣的主题。您将这些开关连接到Firebase

用以下代码替换subscribe(to :)unsubscribe(from :)

private func subscribe(to topic: String) {
  // 1
  Messaging.messaging().subscribe(toTopic: topic)
}

private func unsubscribe(from topic: String) {
  // 2. 
  Messaging.messaging().unsubscribe(fromTopic: topic)
}

就是这样! 这是您添加的内容:

  • 1) 当用户打开主题开关时,此代码将要求Firebase订阅该主题。
  • 2) 当用户关闭主题关闭时,此代码将要求Firebase取消订阅该主题。

构建并运行。 然后,转到Topics选项卡并打开Pets开关。

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

在控制台中,通过选择通知最右边的三个点来复制上一步的通知:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

保留所有相同的内容,除了Step 2。将User Segment更改为Topic,然后为Message topic输入pets

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

现在,这只会向打开Pets切换开关的用户发送通知。发送通知,您将看到上一部分中的所有操作。再次复制通知,然后将主题更改为family并发送。由于您的应用未订阅该主题,因此Firebase不会将通知发送到您的设备。


Sending Images

到目前为止,您的通知都只包含文本。但是,如果您收到了很多通知,则知道通知可以包含丰富的内容,例如图像。如果您的通知向用户显示了与其内容相关的漂亮图片,那将是很好的选择。 Firebase再一次使此超级简单。

1. Adding a Notification Service Extension

要在push notifications中显示图片,您需要创建一个Notification Service Extension。这是您应用中的一个单独target,当您的用户收到推送通知时,该target将在后台运行。在iOS向用户显示通知之前,服务扩展(service extension)可以接收通知并更改其内容。您将使用Firebase在通知内发送图片网址。然后,您将使用内容扩展程序下载图片并将其添加到通知的内容中。

在Xcode中,转到File ▸ New ▸ Target…。搜索Notification Service Extension,然后选择Next。将名称设置为Good News Notifications,并将其配置为添加到项目Good News中,并嵌入到应用程序Good News中,如下面的屏幕截图所示:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

选择Finish,然后在出现提示时选择Activate

当您将Firebase程序包添加到项目中时,它只是添加到了Good News target中,因此现在您需要向新的扩展程序中添加必要的依赖项。 打开应用程序的项目设置,然后在Targets下选择Good News Notifications。 在Frameworks and Libraries下,选择+按钮,然后搜索FirebaseMessaging。 然后,选择Add。 您的项目应反映以下图像:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

2. Customizing Notifications

现在,打开NotificationService.swift。 在该文件中,您可以在用户看到通知之前自定义通知。

首先,将以下导入添加到文件顶部:

import FirebaseMessaging

接下来,将didReceive(_:withContentHandler :)的内容替换为以下内容:

self.cOntentHandler= contentHandler
bestAttemptCOntent= request.content
  .mutableCopy() as? UNMutableNotificationContent
guard let bestAttemptCOntent= bestAttemptContent else { return }
FIRMessagingExtensionHelper().populateNotificationContent(
  bestAttemptContent,
  withContentHandler: contentHandler)

通常,您必须搜索包含图像URL的字段,下载图像,然后以图像作为附件完成演示。在这里,您正在使用FirebaseFIRMessagingExtensionHelper通过一个简单的helper方法调用自动执行所有工作。

请记住,iOS仅给您有限的时间来下载附件图像。如果扩展程序的代码花费的时间太长,系统将调用serviceExtensionTimeWillExpire()。这使您有机会优雅地完成扩展中正在执行的所有操作,或仅按原样显示通知,这是默认实现。

确保Good News是您的active target,然后进行构建和运行。该应用程序应与以前的外观相同。

返回Firebase Cloud Messaging控制台,重复最后几步中您一直在使用的有关kittens的通知。确保您没有使用主题设为family的主题,因为您的应用未订阅该主题。

这次,在Notification image图像下的Step 1中,添加以下URL:https://koenig-media.raywenderlich.com/uploads/2021/01/good_news_petsicon.png

您的控制台应显示如下:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

发送您的通知。 在您的设备上,您会看到一条带有kitten图片的通知,如下所示:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

Analytics

现在,您正在发送和处理通知,请考虑了解用户如何与您的通知进行交互的重要性。 他们完全忽略了他们吗? 他们会定期打开吗? 借助Firebase AnalyticsCloud Messaging,您可以跟踪通知周围的事件。

到目前为止,您还缺少处理通知的一个步骤:将您收到的通知告知Firebase。 在AppDelegate.swift中,在方法末尾将以下内容添加到process(_ :)

Messaging.messaging().appDidReceiveMessage(userInfo)

构建并运行。 然后,停止调试并关闭您的应用程序。 接下来,在Cloud Messaging控制台中复制您先前的通知并发送。 收到通知后,请点击它以打开您的应用程序。

Cloud Messaging控制台中打开通知。 它将显示Sends计数,如下所示:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

1. Tracking Custom Events

既然您的应用程序正在通知Firebase收到了通知,那么Opens次数也可能会有所增加。但是,这个数字不太可能会增加。您最多可能需要24小时才能在Firebase控制台中看到分析信息得到处理并呈现给您。实际上,即使之后,您也可能根本看不到这个数字的增加。在撰写本文时,Google可以针对iOSAndroid通知进行报告的内容受到限制。没关系-您仍然可以利用Google Analytics(分析)并跟踪自定义事件。

注意:本教程的此部分不是push notifications起作用所必需的。如果您不希望跟踪用户与推送通知的交互方式,请随时跳过此部分。如果您之前跳过了设置分析的步骤,则需要添加所需的程序包,并设置Firebase应用程序进行分析,然后再继续。

AppDelegate.swift中,在NewsModel.shared.add([newsItem])之后紧接在process(_:)中添加以下代码行:

Analytics.logEvent("NEWS_ITEM_PROCESSED", parameters: nil)

此代码使用FirebaseAnalytics(分析)来跟踪您是否已将新闻项添加到Feed中。 现在,在Messaging.messaging().appDidReceiveMessage(userInfo)之后添加以下代码行:

Analytics.logEvent("NOTIFICATION_PROCESSED", parameters: nil)

这将记录一个事件,说明您已处理该通知,无论该通知是否包含新闻项。

构建并运行。 再一次在Cloud Messaging控制台中复制您的通知并发送。 返回Firebase中,在Analytics下选择Events。 在这里,您将开始看到事件显示,如下所示:

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

在此示例中,您仅看到NEWS_ITEM_PROCESSED的条目。 这是因为Google尚未完成对该应用程序的分析处理。 同样,在跟随本教程的同时,您不太可能会在帐户中看到这两个事件中的任何一个。 让数小时到一天过去,然后再次检查。

现在,您可以使用Firebase Cloud Messaging发送和接收通知! 您也熟悉Firebase Analytics,可以从Google或Firebase Analytics: Getting Started。

如果您正在寻找如何开始使用Android上的推送通知,请查看Firebase Cloud Messaging for Android: Sending Push Notifications教程。

要了解有关没有FirebaseiOS上的推送通知的更多信息,请查看 Push Notifications Tutorial: Getting Started。

如果您想深入了解推送通知并查找提供的所有内容,请查看我们的Push Notifications video course 课程以及Push Notifications by Tutorials book。

后记

本篇主要讲述了使用Firebase Cloud Messaging进行Push Notification的发送和接收,感兴趣的给个赞或者关注~~~

基于Firebase平台开发(八) —— 使用Firebase Cloud Messaging进行Push Notification的发送和接收(一)

推荐阅读
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • Flutter 开发中集成极光推送的详细步骤
    本文详细介绍了如何在 Flutter 项目中集成极光推送服务,包括配置和测试的具体步骤。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 使用虚拟机配置服务器
    本文详细介绍了如何使用虚拟机配置服务器,包括购买云服务器的操作步骤、系统默认配置以及相关注意事项。通过这些步骤,您可以高效地配置和管理您的服务器。 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • Git命令基础应用指南
    本指南详细介绍了Git命令的基础应用,包括如何使用`git clone`从远程服务器克隆仓库(例如:`git clone [url/path/repository]`)以及如何克隆本地仓库(例如:`git clone [local/path/repository]`)。此外,还提供了常见的Git操作技巧,帮助开发者高效管理代码版本。 ... [详细]
  • 题目解析给定 n 个人和 n 种书籍,每个人都有一个包含自己喜好的书籍列表。目标是计算出满足以下条件的分配方案数量:1. 每个人都必须获得他们喜欢的书籍;2. 每本书只能分配给一个人。通过使用深度优先搜索算法,可以系统地探索所有可能的分配组合,确保每个分配方案都符合上述条件。该方法能够有效地处理这类组合优化问题,找到所有可行的解。 ... [详细]
author-avatar
Utopia
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有