Причиной этой ошибки является то, что во время развертывания операция firebase deploy
пытается заморозить (вычитать) ваш код, но не может найти инструмент и / или файл, используемый для закрепления вашего кода.
Первый шаг в попытке решить эту проблему - убедиться, что вы установили все зависимости в папке functions
, используя npm run install
. Это обеспечит установку инструмента eslint
.
Далее, поскольку команда npm run lint
настроена на вызов eslint .
по умолчанию, ваш файл Index.js
должен быть переименован в index.js
. Это связано с тем, что index.js
имеет особое значение в проектах Javascript / Typescript как точка входа по умолчанию для папки. Большинство инструментов ожидают, что соблюдаются соглашения о присвоении имен и что они в нижнем регистре.
Далее, предоставленный вами файл index.js
содержит несколько опечаток (которые следует выделить, когда инструмент lint выполняет свою работу).
Вот тот же код, переписанный без этих опечаток:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendAdminNotification = functions.database.ref('/Data/{pushId}').onWrite(event => {
const data = event.data.val();
if (data.priority == 1) {
const payload = {
notification: {
title: 'New Data',
body: '${data.title}'
}
};
return admin.messaging().sendToTopic("News", payload)
.then(function(response) {
console.log('Notification sent successfully: ', response);
})
.catch(function(error) {
console.log('Notification sent failed: ', error);
});
}
});
Я рекомендую работать в среде IDE, такой как VS Code или Atom если вы только начинаете использовать Firebase, так как он поможет вам с подсказками кода, динамической подсветкой и подсветкой синтаксиса.