From d314964edfafcc2f0dd64799905ba284b4d07c3c Mon Sep 17 00:00:00 2001 From: Hiranya Jayathilaka Date: Wed, 21 Nov 2018 10:31:22 -0800 Subject: [PATCH] Getting more detailed errors from FCM back-end service (#217) --- CHANGELOG.md | 5 ++++- .../com/google/firebase/messaging/FirebaseMessaging.java | 1 + .../com/google/firebase/messaging/FirebaseMessagingTest.java | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54c45f6e4..b08e7c289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # Unreleased - [fixed] Fixing error handling in FCM. The SDK now checks the key - type.googleapis.com/google.firebase.fcm.v1.FcmError to set error code. + `type.googleapis.com/google.firebase.fcm.v1.FcmError` to set error + code. +- [fixed] FCM errors sent by the back-end now include more details + that are helpful when debugging problems. # v6.5.0 diff --git a/src/main/java/com/google/firebase/messaging/FirebaseMessaging.java b/src/main/java/com/google/firebase/messaging/FirebaseMessaging.java index efdd39da0..34ed36497 100644 --- a/src/main/java/com/google/firebase/messaging/FirebaseMessaging.java +++ b/src/main/java/com/google/firebase/messaging/FirebaseMessaging.java @@ -249,6 +249,7 @@ protected String execute() throws FirebaseMessagingException { try { HttpRequest request = requestFactory.buildPostRequest( new GenericUrl(url), new JsonHttpContent(jsonFactory, payload.build())); + request.getHeaders().set("X-GOOG-API-FORMAT-VERSION", "2"); request.setParser(new JsonObjectParser(jsonFactory)); request.setResponseInterceptor(interceptor); response = request.execute(); diff --git a/src/test/java/com/google/firebase/messaging/FirebaseMessagingTest.java b/src/test/java/com/google/firebase/messaging/FirebaseMessagingTest.java index 0b8ce1caa..4b51513be 100644 --- a/src/test/java/com/google/firebase/messaging/FirebaseMessagingTest.java +++ b/src/test/java/com/google/firebase/messaging/FirebaseMessagingTest.java @@ -512,6 +512,7 @@ private static HttpRequest checkRequestHeader(TestResponseInterceptor intercepto assertEquals("POST", request.getRequestMethod()); assertEquals(TEST_FCM_URL, request.getUrl().toString()); assertEquals("Bearer test-token", request.getHeaders().getAuthorization()); + assertEquals("2", request.getHeaders().get("X-GOOG-API-FORMAT-VERSION")); return request; }