gpt4 book ai didi

java - 您什么时候需要用于 Firebase 云消息传递的应用服务器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:44 25 4
gpt4 key购买 nike

我不熟悉在 https://firebase.google.com/docs/cloud-messaging/server 为 Android 应用程序使用 FCM 通知.我正在阅读它并发现在关于 FCM 服务器页面要求中,它说了以下内容:

An app server that you must implement in your environment. This app server sends data to a client app via the chosen FCM connection server, using appropriate XMPP or HTTP protocol

但是,我对此感到非常困惑。当我深入阅读这篇文章时,我发现有一个 API 如下所示:

POST http://fcm.googleapis.com/fcm/send

如果我使用类似 OkHttpClient 的东西调用这个 API 并像这样构建我的请求,(假设我有身份验证 header 和包含的 POST 正文)

private void sendRegistrationToServer(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder().add(“Body", "").build();
//Assuming I have authentication and body put in
Request request = new Request.Builder().url("http://fcm.googleapis.com/fcm/send”).post(body).build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}

}

理论上,我是否能够向该设备发送包含我想要的任何信息的通知?我可以通过以下类接收消息:

public class NotificationService extends FirebaseMessagingService {
...
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

// TODO(developer): Handle FCM messages here.
Log.d(TAG, "From: " + remoteMessage.getFrom());

// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}

// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}

我确信我的理解在某些地方是不正确的,因为文档确实说我们需要一个应用程序服务器,但如果有人可以指出我误解了如何实现 FCM 通知的地方,那就太好了。如果有人可以举例说明我们何时何地需要应用程序服务器,或者它应该如何实际实现,我们也将不胜感激。谢谢!

最佳答案

当文档说您需要一个应用程序服务器时,主要是因为您需要一个应用程序来存储您要向其发送通知的设备的 token ,并且如果您的任何客户端设备发生变化,此应用程序应更新 token 它的标志。但是,您可以使用 OkHttpClient 向 FCM 服务发送请求,因此如果您拥有这些设备的 token ID,则向其他设备发送通知。这取决于您想做什么,也取决于您希望如何管理通知。

如果你想要一个关于如何在 java 中实现服务器应用程序的例子,这里是一个很好的例子 example 1已发布或这里是另一个 post在 PHP 上实现。如果你想要一个关于如何实现客户端应用程序以及如何从 firebase 控制台测试它的例子,这里是另一个很好的 example .

关于java - 您什么时候需要用于 Firebase 云消息传递的应用服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39162034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com