11: 1 ошибка Ошибка разбора: неожиданный токен} - PullRequest
0 голосов
/ 01 октября 2018

структура базы огня Я не знаю, что здесь не так.Я видел другой пост, но не получил ответы.Ошибка:

11:1  error  Parsing error: Unexpected token }

✖ 1 problem (1 error, 0 warnings)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! functions@ lint: `eslint .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the functions@ lint script.
npm ERR! This is probably not a problem with npm. There is likely     additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\HP\AppData\Roaming\npm-cache\_logs\2018-10-01T18_46_12_434Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code1

Это мой код:

the index.js file is
use-strict'
const functions = require('firebase-functions');
const admin= require('firebase-admin');
admin.initializeApp(functions.config().firestore);
exports.sendNotification= functions.firestore.document('Users/{user_id}/Notifications/{notification_id}').onWrite(event=> {});

const user_id= event.params.user_id;
const notification_id= event.params.notification_id;

console.log("User ID: " + user_id +"| Notifications ID : " + notification_id);
});

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Я полагаю, что вам не хватает:

' в начале вашего «строгого» утверждения

• random }) в конце вашего кода.Удалить }).

• Строковая интерполяция с использованием ${variable here}

Попробуйте выполнить следующее:

"use-strict"

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firestore);
exports.sendNotification = functions.firestore.document(`Users/${user_id}/Notifications/${notification_id}`).onWrite(event => {});

const user_id = event.params.user_id;
const notification_id = event.params.notification_id;

console.log("User ID: " + user_id + "| Notifications ID : " + notification_id);
0 голосов
/ 01 октября 2018

В предоставленном вами фрагменте кода есть некоторые очевидные синтаксические ошибки, как указывалось в других ответах (в конце вашего скрипта есть дополнительный });, и вы должны убедиться, что у вас есть кавычки вокруг обоих концов use-strict оператор. Строка the index.js file is в верхней части вашего фрагмента выглядит так, как будто вы допустили ошибку при создании сообщения, поэтому вам следует переместить эту строку из фрагмента кода, или, если он есть в вашем реальном скрипте, удалить его или добавить префикс.с // чтобы закомментировать.

Какую версию NodeJS вы используете? Есть вероятность, что если вы используете более старую версию узла, вы используете синтаксис функции стрелки, который не совместим сваша версия узла.

  • Проверьте версию вашего узла node -v с таблицей совместимости ES6 здесь .
  • Если версия вашего узла показывает, что он не поддерживаетФункции стрелок, попробуйте заменить следующее: event=> {} на function(event) {}

Редактировать: Также кажется, что стрелка забавнаяПредоставленный вами onWrite пункт не соответствует аргументам, определенным в последней документации NodeJS Firebase для метода onWrite.Похоже, функция стрелки должна принимать следующие аргументы (change, context) => { /* method body */ }:

exports.modifyUser = functions.firestore
  .document('users/{userID}')
  .onWrite((change, context) => {
    // Get an object with the current document value.
    // If the document does not exist, it has been deleted.
    const document = change.after.exists ? change.after.data() : null;

    // Get an object with the previous document value (update/delete)
    const oldDocument = change.before.data();

    // perform desired operations ...
  });

РЕДАКТИРОВАТЬ 2: Вы видите ошибку для user_id undefined, потому что вы не должныпередать текст строки {user_id} в Firestore.Это просто заполнитель, представляющий значение, которое вы должны предоставить.Вы должны предоставить действительный идентификатор пользователя.Например, если у вас есть идентификатор пользователя joe и идентификатор уведомления 1, вы должны передать значения следующим образом: functions.firestore.document('Users/joe/Notifications/1'). Прочитайте документацию здесь

Вы также ссылаетесь на следующие переменные в вызове console.log, которые также кажутся неопределенными: console.log("User ID: " + user_id +"| Notifications ID : " + notification_id);.Вы устанавливаете это где-то еще в вашем коде?Я не вижу, где они установлены.Если нет, вам нужно установить их где-нибудь, прежде чем ссылаться на них.После того, как эти переменные установлены, вам необходимо обновить вызов метода Firestore следующим образом (обратите внимание на использование обратных тиков `` , а не кавычек).Это называется строковым шаблоном.Примерно так (очевидно используйте фактические значения для user_id и notification_id):

var user_id = "joe";
var notification_id = 1;
functions.firestore.document(
    `Users/${user_id}/Notifications/${notification_id}`)
0 голосов
/ 01 октября 2018

Попробуйте удалить осиротевший }); в строке 11.

Я не уверен, пытаетесь ли вы использовать шаблон строки в строке 5, но если это так, убедитесь, чтовы используете магические кавычки (`) вокруг вашей строки и ($) перед скобками в этой строке:

exports.sendNotification= functions.firestore.document('Users/{user_id}/Notifications/{notification_id}').onWrite(event=> {});

Это должно выглядеть следующим образом:

exports.sendNotification= functions.firestore.document(`Users/${user_id}/Notifications/${notification_id}`).onWrite(event=> {});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...