从 Firebase(或其他平台)向特定终端发送 IOS 通知

Posted

技术标签:

【中文标题】从 Firebase(或其他平台)向特定终端发送 IOS 通知【英文标题】:Sending IOS notifications from Firebase (or another platform) to specific terminales 【发布时间】:2017-05-29 22:08:40 【问题描述】:

我们目前能够通过 Firebase 向特定的 android 设备发送通知,我正在尝试对 ios 设备执行相同的操作。

我们使用 POD 并已安装

pod 'Firebase/Core' 
pod ‘Firebase/Messaging'

我们已经使用 Firebase 创建了一个帐户。

我已经添加了与 AppDelegate.swift 对应的函数。执行应用程序后,我可以从 Firebase 向所有 iPhone 发送通知……但没有特定的。

在生产中,我有以下内容

  FIRInstanceID.instanceID().setAPNSToken(deviceToken, tape: FIRInstanceIDAPNSTokenType.prod)

到这里为止,一切都很好..但是当我尝试从用户那里获取令牌然后仅向该设备发送通知时...通知没有到达

生成令牌没有任何问题。

if let refreshedToken = FIRInstanceID.instanceID().token()  
 print(“InstanceID token: \(refreshedToken)”) 
 

从 firebase 发送通知并且不显示错误。但通知永远不会到达实际设备。

这可以用 Firebase 完成吗? 还有其他服务可以让我这样做吗?

更新

我为控制台发送消息

click open image

【问题讨论】:

这主要取决于您如何发送消息。请更新您的问题以包含发送的代码。 @FrankvanPuffelen 你能看看这个吗? ***.com/questions/44294144/… 【参考方案1】:

在 Android 上,Firebase 可以直接使用 GCM。对于 Apple,FCM 消息需要发送到 Apple Push Notifications。

确保您已通过下载 APN 密钥并上传到 Firebase 控制台来设置后端:

下载:https://firebase.google.com/docs/cloud-messaging/ios/certs

上传:打开您的 Firebase 控制台,点击左上角的齿轮图标,点击项目设置,然后点击云消息传递选项卡。在那里上传您的 APN 密钥。

当 Firebase 启动时(在调试模式下运行应用时),您应该能够从调试输出控制台获取 FCM 设备 ID。

【讨论】:

【参考方案2】:

您需要更新您的 Firebase pod 并将此答案中的代码添加到您的 iOS 应用程序-

Working Firebase Messaging Code for iOS App

【讨论】:

以上是关于从 Firebase(或其他平台)向特定终端发送 IOS 通知的主要内容,如果未能解决你的问题,请参考以下文章

向主题发送消息 - Firebase iOS

如何使用 Firebase 中的用户令牌向特定用户发送通知?

如何在 iOS 中使用 Google Firebase 向特定用户发送推送通知?

Swift 从用户向用户发送推送通知 Firebase

使用用户的UID发送Firebase云消息

如何向 FCM(Firebase 云消息传递)令牌的特定用户发送消息?