首页 > 解决方案 > GCM 到 FCM - 在哪里添加服务器密钥和处理 MessageException

问题描述

我正在根据后端不推荐使用的 GCM 进行迁移。添加管理 SDK

dependencies {
  implementation 'com.google.firebase:firebase-admin:5.11.0'
}

之后,我确实发送消息如下

String registrationToken = "YOUR_REGISTRATION_TOKEN";
// See documentation on defining a message payload.
Message message = Message.builder()
    .putData("score", "850")
    .putData("time", "2:45")
    .setToken(registrationToken)
    .build();

// Send a message to the device corresponding to the provided
String response = FirebaseMessaging.getInstance().sendAsync(message);

这里有2个问题:

1. 这里我们如何设置密钥? 在 GCM 中,我们可以这样做,new Sender(GCM_key).send(Message)但我在这里找不到如何设置密钥。我不认为 setToken 方法用于设置密钥。

2、这里的异常怎么处理? 在库中,有一个名为FirebaseMessageException的类扩展异常,那么如何处理呢?

任何解决方案将不胜感激。

谢谢

标签: javafirebasegoogle-cloud-messagingfirebase-cloud-messagingfirebase-admin

解决方案


  1. 使用 Admin SDK 发送 FCM 消息时,您不需要在请求中的任何位置设置服务器密钥,正如它的名字一样,Admin SDK 在涉及到 Firebase 服务时具有类似管理员的权限,因此使用发送的消息它是自动授权的。

  2. sendAsync()文档中所述:

返回: 一个ApiFuture将在消息发送后以消息 ID 字符串结尾的 。

从返回的ApiFuture中,我假设您只需添加一个侦听器(即addListener())或使用ApiFuturesutil 类。


推荐阅读