【发布时间】:2020-02-05 00:15:03
【问题描述】:
我在 Firebase Cloud Messaging 下配置了一个 Android 应用,当我从控制台发送通知时,我在 Android 应用中看到了通知。
我现在正在尝试实现从后端服务器 java spring 应用程序发送通知,这是我的服务:
@Slf4j
@Service
public class FCMService {
public void sendMessageWithData() throws FirebaseMessagingException {
Message message = getPreconfiguredMessageWithData();
String response = sendAndGetResponse(message);
log.info("Sent message with data.");
}
private String sendAndGetResponse(Message message) throws FirebaseMessagingException {
return FirebaseMessaging.getInstance().send(message);
}
private AndroidConfig getAndroidConfig(String topic) {
return AndroidConfig.builder()
.setTtl(Duration.ofMinutes(2).toMillis()).setCollapseKey(topic)
.setPriority(AndroidConfig.Priority.HIGH)
.setNotification(AndroidNotification.builder().setSound("default")
.setColor("#FFFF00").setTag(topic).build()).build();
}
private ApnsConfig getApnsConfig(String topic) {
return ApnsConfig.builder()
.setAps(Aps.builder().setCategory(topic).setThreadId(topic).build()).build();
}
private Message getPreconfiguredMessageWithData() {
return getPreconfiguredMessageBuilder().setTopic("all")
.putData("test", "data")
.build();
}
private Message.Builder getPreconfiguredMessageBuilder() {
AndroidConfig androidConfig = getAndroidConfig("all");
ApnsConfig apnsConfig = getApnsConfig("all");
return Message.builder()
.setApnsConfig(apnsConfig).setAndroidConfig(androidConfig)
.setNotification(
new Notification("sample title", "sample message"));
}
}
消息已正确发送,我在响应中获得了消息的 ID,但该通知在应用程序中不可见,并且我无法在 Firebase 控制台中将其视为新通知。哪里有问题?我还缺少什么吗?
【问题讨论】:
标签: java android spring firebase spring-boot