Сбой функции Firebase - неожиданный идентификатор: initializeIfNeeded - PullRequest
0 голосов
/ 11 июня 2019

Я развернул следующую функцию firebase:

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

admin.initializeApp();

// other functions

exports.createProfileDocument = functions.auth.user().onCreate(async user => {
    await admin.firestore().collection('profiles').doc(user.uid).set({
        userName: user.displayName
    })
});

Это работало, но недавно остановилось, когда создавалась новая учетная запись пользователя, функция просто не сработала (ничего в журналах, ошибок нет, нетактивность и т. д.).Я обновил свои зависимости следующим образом:

  "dependencies": {
    "firebase-admin": "^8.0.0",
    "firebase-functions": "^2.3.1",
    "firebase-tools": "^6.11.0"
  },

Функция теперь срабатывает, когда я ожидал, но не работает со следующей ошибкой:

/user_code/node_modules/firebase-admin/node_modules/@google-cloud/firestore/build/src/index.js:740
    async initializeIfNeeded() {
          ^^^^^^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at FirebaseNamespace.get [as firestore] (/user_code/node_modules/firebase-admin/lib/firebase-namespace.js:329:29)

Есть идеи?

Ответы [ 2 ]

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

Вам необходимо обновить свой узел до версии 8.x, которая допускает асинхронные перехватчики.

Обновление: Как обновить nodejs с 6.x до 8.x?

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

Похоже, что это не удалось из-за ключевого слова async перед initializeIfNeeded (), поскольку это недоступно в узле 6. Мне удалось решить проблему, добавив

"engines": { "node": "8" }

в мой пакет.* 1004 JSON *

...