我正在考虑在数据库中保留所有注册ID(推送令牌)并从iPhone发送通知给用户 . 我试过这样的事情,但没有得到任何通知 .
func sendPNMessage() {
FIRMessaging.messaging().sendMessage(
["body": "hey"],
to: TOKEN_ID,
withMessageID: "1",
timeToLive: 108)
}
我做错了什么或者根本不可能做到这一点?
5 回答
目前,无法从应用程序本身发送消息 . 您可以使用服务器端API从Firebase Web控制台或自定义服务器发送消息 .
您可能想要做的是联系服务器(如通过http调用),该服务器将消息发送给用户 . 这样可以确保服务器的API-KEY受到保护 .
PS:
sendMessage(..)
api被称为上游功能,如果您的服务器与FCM服务器有XMPP连接,则可用于将消息从您的应用程序发送到您的服务器 .是的,您可以通过Firebase发送推送通知 . 请确保不要将服务器密钥包含在您的客户端中 . 有些方法“不是那么好的人”找到它并做些事情......正确的方法是让你的客户指示你的app-server发送通知 .
您必须将HTTP-Post发送到Google-API-Endpoint .
您需要以下 Headers :
Google Cloud 端功能现在可以在没有应用服务器的情况下从设备到设备发送推送通知 .
From the Google Cloud Functions documentation:
Here is a demo project用于使用Firebase和Google Cloud Functions发送设备到设备推送通知 .
迭戈'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 .
使用信号,你可以将设备发送到通知或设备到段,它可以用这种方式使用firebase使用信号函数创建一个特定的id,保存在firebase数据库中,然后当id可以放入另一个函数时用于发送通知注意:1 - 我在我的应用程序中使用它与firebase工作完美2 - 我可以提交该代码,只是有人评论所以我可以找到这个答案