Ошибка журнала консоли при обновлении, консоль Firebase - PullRequest
0 голосов
/ 15 марта 2019

У меня эта функция в Typescript развернута на моей консоли Firebase:

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'

admin.initializeApp()


export const onEditModeUpdate = 
functions.firestore.document("Settings/ShiftsEditMode").onUpdate(change => { 
    if (change.after) {
        const after = change.after.data();
        const payload = {
            data: {
                temp: String(after.temp),
                conditions: String(after.conditions)
        }
    }
    return admin.messaging().sendToTopic("Settings/ShiftsEditMode", payload)
}
else {
    return null;
}
})

развертывание верно, но когда я изменяю данные, я получаю сообщение об ошибке в журнале консоли:

Error: Topic provided to sendToTopic() must be a string which matches the format "/topics/[a-zA-Z0-9-_.~%]+".
at FirebaseMessagingError.Error (native)
at FirebaseMessagingError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:42:28)
at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:88:28)
at new FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:253:16)
at Messaging.validateTopic (/user_code/node_modules/firebase-admin/lib/messaging/messaging.js:964:19)
at /user_code/node_modules/firebase-admin/lib/messaging/messaging.js:650:19
at process._tickDomainCallback (internal/process/next_tick.js:135:7)

Любое предложение, что я делаю не так, пожалуйста.

1 Ответ

1 голос
/ 15 марта 2019

Внимательно прочитайте сообщение об ошибке:

Ошибка: тема, предоставляемая sendToTopic (), должна быть строкой, которая соответствует формату "/topics/[a-zA-Z0-9-_.~%]+".

Строка, которую вы указали, «Settings / ShiftsEditMode», не соответствует требуемому шаблону. Шаблон говорит, что строка должна начинаться с "/ themes /". Остальная часть строки, которая является названием вашей темы, может содержать только буквы, цифры, подчеркивание, точку, тильду и проценты. Заданная вами строка также не соответствует этому шаблону, так как содержит недопустимый слеш.

...