从服务器向安装了应用程序的用户段发送通知。
从服务器向安装了应用程序的用户段发送通知。
在Firebase控制台中,我看到了向具有应用程序“com.example”(其中com.example是应用程序名称)的用户分段发送通知的选项。
如图所示:
但是如何通过服务器端使用FCM REST API来实现呢:
原因:无法使用FCM REST API向用户段发送消息。
解决方法:使用其他方法发送消息给多个设备,如使用registration_ids参数和Topics Messaging。以下是如何使用Postman或cURL发送消息的示例。
如果你有超过一千个用户,你需要进行批量请求,每个请求最多包含1000个注册令牌。
对于将来的参考,可以在没有用户交互的情况下进行主题订阅。只需通过HTTP发送POST请求到"https://iid.googleapis.com/iid/v1/[REGISTRATIONTOKEN]/rel/topics/[TOPIC]"(使用服务器密钥进行授权)。
这篇文章讨论了在Firebase中使用原生用户段的问题。如果你知道实际的段和必须订阅的用户,使用主题是一种解决方法。
所以,你可以使用registration_ids参数进行操作。
问题的出现原因:需要从服务器向已安装应用的用户段发送通知,但没有找到合适的方法实现。
解决方法:在FirebaseInstanceIdService类中,将应用订阅到一个特定的主题,例如应用包名称。然后,可以通过发送数据消息的方式向该主题发送通知。以下是订阅应用到主题的代码示例:
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { private final String TAG = "your_tag"; public void onTokenRefresh() { // 获取更新的InstanceID token String refreshedToken = FirebaseInstanceId.getInstance().getToken(); FirebaseMessaging.getInstance().subscribeToTopic("your_app_package_name"); } }
以上方法对我有效。