昨天Google宣布了一组新的Firebase工具,其中一个是通知功能,可以将通知从服务器发送到正在使用我的应用的设备。通过Firebase发送推送通知
但是,我们现在可以在用户收到新消息时通知用户吗?
如果不是,是否有办法实现这一目标?
昨天Google宣布了一组新的Firebase工具,其中一个是通知功能,可以将通知从服务器发送到正在使用我的应用的设备。通过Firebase发送推送通知
但是,我们现在可以在用户收到新消息时通知用户吗?
如果不是,是否有办法实现这一目标?
看看文档,这似乎目前不可能自动。下面是完成它的一种可能方式 “手动” 与其他服务器:
在安卓
FirebaseMessaging.getInstance().subscribeToTopic("InsertUserIDHere");
在IOS
[[FIRMessaging messaging] subscribeToTopic:@"/topics/InsertUserIDHere"];
请看here了解更多信息。
辉煌!我有两个问题,如果我可以。首先,我们如何使用其他服务器发送通知,Firebase只允许通过控制台发送通知。其次,如果我有很多用户,它会高效吗?文档中提到“在控制台中显示新主题之前可能会延迟多达一天”。谢谢。 – Khaled
不理我最后的评论。看看[这里](https://firebase.google.com/docs/cloud-messaging/topic-messaging),了解更多有关通过服务器发送消息而不使用控制台的信息。如果您不使用控制台,我不确定延迟是否仍然适用。 – user2997154
您可以将消息发送给用户组(定位特定“主题”)或发送到单个设备(定位到Firebase云消息传递令牌)。
要订阅一个设备到主题使用:
FirebaseMessaging.getInstance().subscribeToTopic("topicName");
要获得设备令牌使用(* 1):
FirebaseInstanceId.getInstance().getToken();
然后你可以使用火力地堡Notificaitons Web控制台,或FCM服务器API,如果你想从你的服务器发送消息。
见:https://firebase.google.com/docs/cloud-messaging/downstream#sending_topic_messages_from_the_server
注:
[1] getToken()
可以返回null如果令牌是尚未公布。
您可以使用回调onTokenRefresh()
在令牌可用时以及令牌旋转时进行通知。
请参阅:https://firebase.google.com/docs/cloud-messaging/android/client#sample-register
如果您的意思是来自其他用户的新消息,那么我也想知道这一点。看看文档,它看起来像这仍然不可能自动。我认为你需要让另一台服务器检查每条发送的消息,然后创建一个标有收件人用户标识的通知。然后您将收件人订阅到它自己的用户标识标签。检查[link](https://firebase.google.com/docs/notifications/android/console-topics#receive_topic_messages_on_an_android_client_app) – user2997154
在docs @ user2997154中寻找巨大狩猎。如果你把它写成答案,我会赞成。 :-) –