Firebase响应 - 空值响应

时间:2017-05-26 10:59:48

标签: android spring firebase firebase-cloud-messaging

我在我的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控制台中定义了主题“照片”。可能是什么问题,除了一切都很好,直到今天?对我来说真的很奇怪。

1 个答案:

答案 0 :(得分:0)

也许您有多个部署环境集,当您在Play商店中启动应用程序时,您已更改为生产,而在firebase中,您只在开发中添加了数据。这曾经是我的问题,我只在dev中设置数据,当我向客户端发布一个版本时,应用程序没有任何数据(Staging为空)。