是否可以使用Firebase云消息传递(FCM)直接从设备发送PushNotifications到特殊的UDID?

我想在数据库中保留所有注册ID(推令牌),并从iPhone发送通知给用户。 我尝试了这样的事情,但没有得到任何通知。

func sendPNMessage() { FIRMessaging.messaging().sendMessage( ["body": "hey"], to: TOKEN_ID, withMessageID: "1", timeToLive: 108) } 

我做错了什么,或者根本不可能呢?

目前无法从应用程序本身发送消息。 您可以从Firebase Web控制台发送消息,也可以使用服务器端API从自定义服务器发送消息。

你可能想要做的是联系服务器(如通过http调用),该服务器将发送消息给用户。 这样可以确保服务器的API-KEY受到保护。

PS: sendMessage(..) api被称为上游function,如果服务器与FCM服务器具有XMPP连接,则可用于将消息从应用程序发送到服务器。

是的,您可以通过Firebase发送推送通知。请确保不要将服务器密钥包含在您的客户端中。 有一些方法可以让“找不到那么好的人”来find它并做些事情。正确的方法是让客户指示你的应用程序服务器发送通知。

您必须发送HTTP-Post到Google-API-Endpoint。

您需要以下标题:

 Content-Type: application/json Authorization: key={your_server_key} You can obtain your server key within in the Firebase-Project. HTTP-Post-Content: Sample { "notification": { "title": "Notification Title", "text": "The Text of the notification." }, "project_id": "<your firebase-project-id", "to":"the specific client-device-id" } 

Google云端函数使得现在可以在没有应用服务器的情况下从设备到设备发送推送通知。

从Google Cloud Functions文档:

开发人员可以使用云function来保持用户的参与,并了解有关应用程序的相关信息。 例如,考虑一个允许用户在应用程序中关注对方活动的应用程序。 在这样的应用程序中,由实时数据库写入来存储新追随者的function可以创buildFirebase云消息传递(FCM)通知,以便让适当的用户知道他们获得了新的追随者。

例:

  1. 该函数触发写入存储追随者的实时数据库path。

  2. 该function组成一个消息通过FCM发送。

  3. FCM将通知消息发送给用户的设备。

这是一个演示项目,用于通过Firebase和Google云端function发送设备到设备推送通知。