首页 文章

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

提问于
浏览
15

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

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

我做错了什么或者根本不可能做到这一点?

5 回答

  • 2

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

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

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

  • 0

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

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

    您需要以下 Headers :

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

    Google Cloud 端功能现在可以在没有应用服务器的情况下从设备到设备发送推送通知 .

    From the Google Cloud Functions documentation:

    开发人员可以使用 Cloud 功能来保持用户参与并及时了解有关应用的相关信息 . 例如,考虑一个允许用户在应用程序中关注彼此活动的应用程序 . 在这样的应用程序中,由实时数据库写入存储新关注者的功能可以创建Firebase Cloud 消息传递(FCM)通知,以便让相应的用户知道他们已经获得了新的关注者 . 示例:该函数在写入存储关注者的实时数据库路径时触发 . 该功能组成要通过FCM发送的消息 . FCM将通知消息发送到用户的设备 .

    Here is a demo project用于使用Firebase和Google Cloud Functions发送设备到设备推送通知 .

  • 7

    迭戈's answer is very accurate but there'也是来自firebase的 Cloud 功能's very convenient to send notifications in every change in the db. For example let' s说你正在构建聊天应用程序并在每个新的关注者变更中发送通知 . This function sample就是很好的例子 .

    有关 Cloud 功能的更多信息,请查看official docs .

  • -1

    使用信号,你可以将设备发送到通知或设备到段,它可以用这种方式使用firebase使用信号函数创建一个特定的id,保存在firebase数据库中,然后当id可以放入另一个函数时用于发送通知注意:1 - 我在我的应用程序中使用它与firebase工作完美2 - 我可以提交该代码,只是有人评论所以我可以找到这个答案

相关问题