我在我的Android应用程序和弹簧后端使用firebase通知。
一切都运行正常,但是在我将我的Android版本发布到谷歌游戏商店进行测试后,可能会出现问题。现在我有这个回应:
FirebaseResponse{multicast_id=0, success=null, failure=null, canonical_ids=null, results=null}
发送通知并且一切正常,但为什么我在Spring后端获取空值?
我的后端java spring代码:
@RequestMapping(value = "/send", method = RequestMethod.GET,
produces = "application/json")
public ResponseEntity<String> send() {
JSONObject body = new JSONObject();
try {
body.put("to", "/topics/photos");
body.put("priority", "high");
JSONObject notification = new JSONObject();
notification.put("body", "body string here");
notification.put("title", "title string here");
JSONObject data = new JSONObject();
data.put("lat", "value1");
data.put("lng", "value2");
body.put("notification", notification);
body.put("data", data);
} catch (JSONException e) {
e.printStackTrace();
}
HttpEntity<String> request = new HttpEntity<>(body.toString());
CompletableFuture<FirebaseResponse> pushNotification = androidPushNotificationsService.send(request);
CompletableFuture.allOf(pushNotification).join();
try {
FirebaseResponse firebaseResponse = pushNotification.get();
if (firebaseResponse.getSuccess() == 1) {
log.info("push notification sent ok!");
} else {
log.error("error sending push notifications: " + firebaseResponse.toString());
}
return new ResponseEntity<>(firebaseResponse.toString(), HttpStatus.OK);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return new ResponseEntity<>("the push notification cannot be send.", HttpStatus.BAD_REQUEST);
}
我在这里获得nullpointer,这是成功的:
firebaseResponse.getSuccess()
原因是什么?我在项目firebase控制台中定义了主题“照片”。可能是什么问题,除了一切都很好,直到今天?对我来说真的很奇怪。
答案 0 :(得分:0)
也许您有多个部署环境集,当您在Play商店中启动应用程序时,您已更改为生产,而在firebase中,您只在开发中添加了数据。这曾经是我的问题,我只在dev中设置数据,当我向客户端发布一个版本时,应用程序没有任何数据(Staging为空)。