Skip to content

Commit 5f1e48c

Browse files
authored
Correctly handling FCM THIRD_PARTY_AUTH_ERROR error code (#333)
1 parent 646c384 commit 5f1e48c

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/main/java/com/google/firebase/messaging/FirebaseMessagingClientImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,15 @@ final class FirebaseMessagingClientImpl implements FirebaseMessagingClient {
6767
.put("NOT_FOUND", "registration-token-not-registered")
6868
.put("PERMISSION_DENIED", "mismatched-credential")
6969
.put("RESOURCE_EXHAUSTED", "message-rate-exceeded")
70-
.put("UNAUTHENTICATED", "invalid-apns-credentials")
70+
.put("UNAUTHENTICATED", "third-party-auth-error")
7171

7272
// FCM v1 new error codes
73-
.put("APNS_AUTH_ERROR", "invalid-apns-credentials")
73+
.put("APNS_AUTH_ERROR", "third-party-auth-error")
7474
.put("INTERNAL", FirebaseMessaging.INTERNAL_ERROR)
7575
.put("INVALID_ARGUMENT", "invalid-argument")
7676
.put("QUOTA_EXCEEDED", "message-rate-exceeded")
7777
.put("SENDER_ID_MISMATCH", "mismatched-credential")
78+
.put("THIRD_PARTY_AUTH_ERROR", "third-party-auth-error")
7879
.put("UNAVAILABLE", "server-unavailable")
7980
.put("UNREGISTERED", "registration-token-not-registered")
8081
.build();

src/test/java/com/google/firebase/messaging/FirebaseMessagingClientImplTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,24 @@ public void testSendErrorWithFcmError() {
249249
}
250250
}
251251

252+
@Test
253+
public void testSendErrorWithThirdPartyError() {
254+
for (int code : HTTP_ERRORS) {
255+
response.setStatusCode(code).setContent(
256+
"{\"error\": {\"status\": \"INVALID_ARGUMENT\", \"message\": \"test error\", "
257+
+ "\"details\":[{\"@type\": \"type.googleapis.com/google.firebase.fcm"
258+
+ ".v1.FcmError\", \"errorCode\": \"THIRD_PARTY_AUTH_ERROR\"}]}}");
259+
260+
try {
261+
client.send(EMPTY_MESSAGE, DRY_RUN_DISABLED);
262+
fail("No error thrown for HTTP error");
263+
} catch (FirebaseMessagingException error) {
264+
checkExceptionFromHttpResponse(error, "third-party-auth-error");
265+
}
266+
checkRequestHeader(interceptor.getLastRequest());
267+
}
268+
}
269+
252270
@Test
253271
public void testSendAll() throws Exception {
254272
final TestResponseInterceptor interceptor = new TestResponseInterceptor();

0 commit comments

Comments
 (0)