Merge pull request #10679 from thingsboard/fix/firebase-senderid-mismatch
Improve mobile notifications stability
This commit is contained in:
commit
20d074e87f
@ -105,9 +105,10 @@ public class MobileAppNotificationChannel implements NotificationChannel<User, M
|
|||||||
firebaseService.sendMessage(ctx.getTenantId(), credentials, token, subject, body, data, unreadCount);
|
firebaseService.sendMessage(ctx.getTenantId(), credentials, token, subject, body, data, unreadCount);
|
||||||
} catch (FirebaseMessagingException e) {
|
} catch (FirebaseMessagingException e) {
|
||||||
MessagingErrorCode errorCode = e.getMessagingErrorCode();
|
MessagingErrorCode errorCode = e.getMessagingErrorCode();
|
||||||
if (errorCode == MessagingErrorCode.UNREGISTERED || errorCode == MessagingErrorCode.INVALID_ARGUMENT) {
|
if (errorCode == MessagingErrorCode.UNREGISTERED || errorCode == MessagingErrorCode.INVALID_ARGUMENT || errorCode == MessagingErrorCode.SENDER_ID_MISMATCH) {
|
||||||
validTokens.remove(token);
|
validTokens.remove(token);
|
||||||
userService.removeMobileSession(recipient.getTenantId(), token);
|
userService.removeMobileSession(recipient.getTenantId(), token);
|
||||||
|
log.debug("[{}][{}] Removed invalid FCM token due to {} {} ({})", recipient.getTenantId(), recipient.getId(), errorCode, e.getMessage(), token);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Failed to send message via FCM: " + e.getMessage(), e);
|
throw new RuntimeException("Failed to send message via FCM: " + e.getMessage(), e);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user