是否有可能发送推送通知,使用火力地堡云端通讯(FCM)特殊UID,直接从设备?

问题描述 投票:16回答:5

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

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

我做错了或者它是不可能的呢?

ios firebase google-cloud-messaging firebase-cloud-messaging firebase-notifications
5个回答
19
投票

目前,它不是可以从应用程序本身发送消息。您可以从火力地堡Web控制台,或使用服务器端API定制服务器发送消息。

你可能会想要做的就是(通过HTTP调用等)连接服务器和服务器将邮件发送给用户。通过这种方式保证了服务器的API-KEY保护。

PS:在sendMessage(..) API被称为上游功能,可用于从您的应用程序将消息发送到您的服务器,如果服务器与FCM服务器XMPP连接。


7
投票

是的,你可以通过发送Firebase.Please推送通知请确保不包括服务器密钥到您的客户端。有办法“不那么伟大的人民”来找到它,做的东西......正确的方式来实现这是你的客户,指示您的应用程序服务器发送通知。

你要一个HTTP-POST发送到谷歌的API-端点。

您需要以下标题:

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"
}

3
投票

谷歌云功能使从设备到设备,现在可以发送推送通知没有应用服务器。

From the Google Cloud Functions documentation:

开发人员可以使用云功能来保持用户和最新的有关应用程序的相关信息。举个例子,一个应用程序,允许用户按照应用程序彼此的活动。在这样的应用程序,通过实时数据库触发的功能写入到存储新的追随者可能会造成火力地堡云端通讯(FCM)的通知,让合适的用户知道他们已经获得了新的追随者。

例:

  1. 该功能会触发写入其中的追随者都存储在实时数据库路径。
  2. 功能构成的消息通过FCM发送。
  3. FCM发送通知消息发送到用户的设备。

Here is a demo project与火力地堡和谷歌云功能发送设备到设备的推送通知。


1
投票

迭戈的回答很准确但也有从火力这是非常方便的在DB的每一个变化发送通知的云功能。例如,假设您正在构建聊天应用程序,并在每一个新的追随者改变时发送通知。 This function sample就是很好的例子。

有关云功能的更多信息,你可以检查official docs


-1
投票

使用onesignal,您可以发送设备通知或设备段,就可以用这种方法火力点工作中使用onesignal函数来创建一个特定的ID,它保存在一个火力点数据库,当编号可以放在另外一个新功能是用于发送通知注:1,我使用它在我的应用程序与火力的作品完美2我可以提交代码,只是一个人的意见,所以我可以找到这个答案

© www.soinside.com 2019 - 2024. All rights reserved.