Я использую firebase admin sdk to pu sh мобильных уведомлений (облачные сообщения firebase). Я успешно настроил его, и он работал около года на облачном движке Google kubernetes. Затем он перестал работать. Вот трассировка стека, которую я получаю на бэкэнде:
com.google.firebase.messaging.FirebaseMessagingException: Unexpected HTTP response with status: 401; body: null
at com.google.firebase.messaging.FirebaseMessagingClientImpl.newException(FirebaseMessagingClientImpl.java:307) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessagingClientImpl.createExceptionFromResponse(FirebaseMessagingClientImpl.java:212) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessagingClientImpl.send(FirebaseMessagingClientImpl.java:128) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessaging$1.execute(FirebaseMessaging.java:139) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessaging$1.execute(FirebaseMessaging.java:136) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.internal.CallableOperation.call(CallableOperation.java:36) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessaging.send(FirebaseMessaging.java:106) ~[firebase-admin-6.12.1.jar!/:na]
at com.google.firebase.messaging.FirebaseMessaging.send(FirebaseMessaging.java:90) ~[firebase-admin-6.12.1.jar!/:na]
Код состояния от FirebaseMessagingException - unknown-error
. Я использую зависимость gradle com.google.firebase:firebase-admin:6.12.1
.
Мой серверный код инициализации FirebaseApp (kotlin):
val credentials = GoogleCredentials
.fromStream(FileInputStream(firebaseAppCredentials))
.createScoped(Arrays.asList("https://www.googleapis.com/auth/firebase.messaging"))
val options = FirebaseOptions.builder()
.setCredentials(credentials)
.build()
val firebaseApp = FirebaseApp.initializeApp(options)
Я подтвердил, что firebaseAppCredentials
содержит путь к файлу с Учетная запись службы firebase . Вот код отправки (kotlin):
val message = Message.builder()
.setNotification(notification)
.setToken(registrationToken)
.build()
FirebaseMessaging.getInstance(firebaseApp).send(message)
Можете ли вы помочь узнать, как это можно исправить?