Firebase sendToTopic завершается с ошибкой 404, но уведомления консоли работают, и все разрешения/API включены.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Firebase sendToTopic завершается с ошибкой 404, но уведомления консоли работают, и все разрешения/API включены.

Сообщение Anonymous »

Я сталкиваюсь с постоянной ошибкой 404 Not Found при попытке отправить уведомление из облачной функции Node.js 2nd поколения с помощью admin.messaging().sendToTopic().
Самым неприятным моментом является то, что я могу успешно отправлять тестовые уведомления в свое действующее приложение из инструмента кампании консоли Firebase. Это доказывает, что мое клиентское приложение Flutter, файл google-services.json и ключи подписи приложения (SHA-1) настроены правильно. Проблема строго изолирована от среды выполнения моей облачной функции на стороне сервера.
Вот код функции для addJanazah:

Код: Выделить всё

export const addJanazah = onCall(async (request) => {
// ... (code to validate request and write to Firestore) ...
// This part works successfully.

// This is the part that fails:
try {
const payload = {
notification: {
title: `New Janazah`,
body: `A new Janazah has been scheduled.`
},
data: { 'screen': 'map_page' }
};
console.log("Attempting to send notification with payload:", JSON.stringify(payload));
await getMessaging().sendToTopic('new_janazah_notifications', payload);
console.log("Successfully sent notification.");
} catch (messagingError) {
// This is the error I am seeing in my production logs:
console.warn("Warning: Could not send notification.", messagingError);
}

return { success: true };
});
а вот точный журнал ошибок из облачных журналов Google:

Код: Выделить всё

Warning: Could not send notification. FirebaseMessagingError: An unknown server error was returned. Raw server response: "

Not Found



Not Found
Error 404


". Status code: 404.
at createFirebaseError (/workspace/node_modules/firebase-admin/lib/messaging/messaging-errors-internal.js:57:12)
at /workspace/node_modules/firebase-admin/lib/messaging/messaging-api-request-internal.js:82:75
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async file:///workspace/index.js:180:9
at async /workspace/node_modules/firebase-functions/lib/common/providers/https.js:467:26 {
errorInfo: {
code: 'messaging/unknown-error',
message: 'An unknown server error was returned. Raw server response: "\n' +
'\n' +
'Not Found\n' +
'\n' +
'\n' +
'\n' +
'Not Found\n' +
'Error 404\n' +
'\n' +
'\n' +
'". Status code: 404.'
},
codePrefix: 'messaging'
}
Исчерпывающий список уже предпринятых шагов по устранению неполадок:
Я тщательно проверил каждую стандартную конфигурацию, и ошибка все еще сохраняется. Я проверил:
  • API включены: API Firebase Cloud Messaging API и Cloud Pub/Sub API подтверждены как «включены» в Google Cloud Console для моего проекта Firebase. Я также попытался отключить, а затем снова включить оба API, чтобы принудительно выполнить повторную подготовку, без каких-либо изменений.
  • Разрешения IAM: я предоставил роли владельца, администратора Firebase и издателя Pub/Sub обеим следующим учетным записям служб:

    Идентификатор времени выполнения функции (учетная запись службы вычислений по умолчанию): 581XXXXX-compute@developer.gserviceaccount.com
  • Учетная запись службы Firebase Admin SDK: firebase-adminsdk-fbsvc@XXXXX.iam.gserviceaccount.com
[*]Ключи API: я подтвердил, что ключи API для проекта не ограничены способ заблокировать эти службы.
  • У меня есть 1 ключ API по умолчанию (тот, который автоматически создается Firebase для Android и настраивается в google-services.json
  • и еще один специальный ключ API, который я создал для Maps SDK и настроил в AndroidManifest.xml таким образом

Код: Выделить всё


Подробнее здесь: [url]https://stackoverflow.com/questions/79858191/firebase-sendtotopic-fails-with-404-but-console-notifications-work-and-all-perm[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»