когда облачная функция firebase, запускающая firestore (onUpdate), показывает ошибку машинописи - PullRequest
0 голосов
/ 05 июня 2019
exports.archiveChat = functions.firestore
                     .document('chats/{chatId}')
                     .onUpdate( snap => {
                        const data= snap.after.data();
                        const maxLen = 100;
                        const msgLen =  data.messages.length;
                        const charLen = JSON.stringify(data).length;
                        const batch = db.batch()

                        if( charLen >= 10000 || msgLen >= maxLen){
                            const deleteCount = msgLen - maxLen <= 0 ? 1 : msgLen - maxLen 

                          data.messages.splice(0,deleteCount);

                            const ref =  db.collection("chats").doc(snap.after.id)

                          batch.set( ref, data ,{ merge : true });
                             return  batch.commit();
                        } else{
                            return null;
                        }
                        })

не использовать до объявления объявлено устаревшим.Начиная с TypeScript 2.9.Пожалуйста, используйте вместо этого встроенные проверки компилятора.Выполнение команды: npm --prefix «$ RESOURCE_DIR» запустить сборку

functions @ build / Users / thedkn / Desktop / cmeraApp1 / functions tsc

src / index.ts: 39: 45 - ошибка TS2532: Возможно, объект не определен.

39 const msgLen = data.messages.length;~~~~

src / index.ts: 46: 31 - ошибка TS2532: Возможно, объект не определен.

46 data.messages.splice (0, deleteCount);~~~~

src / index.ts: 50: 47 - ошибка TS2345: Аргумент типа 'DocumentData |undefined 'не может быть назначен параметру типа' DocumentData '.Тип «undefined» нельзя назначить типу «DocumentData».

50 batch.set (ref, data, {merge: true});~~~~

Найдено 3 ошибки.

npm ERR!код ELIFECYCLE npm ERR!errno 2 npm ERR!functions @ build: tsc npm ERR!Статус выхода 2 npm ERR!нпм ERR!Сбой в скрипте functions @ build.нпм ERR!Это, вероятно, не проблема с npm.Скорее всего, выше выводится логирование.

npm ERR!Полный журнал этого прогона можно найти в: npm ERR!/Users/thedkn/.npm/_logs/2019-06-05T00_10_17_788Z-debug.log

Ошибка: ошибка предустановки функций: команда завершена с ненулевым кодом выхода2 Dhirajs-Air: функции thedkn $

1 Ответ

0 голосов
/ 05 июня 2019

const data= snap.after.data() может возвращать неопределенное значение, если нет снимка «после». Ваш код должен проверить это, если у вас включен строгий режим для вашего компилятора TypeScript.

const data= snap.after.data()
if (data) {
    // now it's safe to use data because it's certain to be defined
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...