функции firebase: свойство оболочки onWrite не определено - PullRequest
3 голосов
/ 13 июня 2019

Я пытаюсь проверить свои облачные функции локально.Я использую команду firebase functions:shell, которая успешно запускает эмулятор.У меня есть следующая облачная функция в моем index.ts:

export const stripeCharge = functions.region('europe-west1').database
    .ref('/payments/{userId}/{paymentId}')
    .onWrite(async (change, context) => {
        someCode;
});

Я прочитал, что вы должны вызывать функцию onWrite firestore следующим образом (https://firebase.google.com/docs/functions/local-shell):

stripeCharge({before: "oldData", after: "newData"})

Однако этоприводит к следующей ошибке:

'Successfully invoked function.'
firebase > !  TypeError: Cannot read property 'eventType' of undefined
    at cloudFunction (C:\Users\Jesper\intergun\functions\node_modules\firebase-functions\lib\cloud-functions.js:80:40)
    at Run (C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:458:20)
    at C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:442:19
    at Generator.next (<anonymous>)
    at C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:3:12)
    at Run (C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:435:12)
    at C:\Users\Jesper\AppData\Roaming\nvm\v8.16.0\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:457:15
    at Generator.next (<anonymous>)
!  Your function was killed because it raised an unhandled error.

Ошибка возникает в каком-то другом файле, и я не знаю почему. Чего мне не хватает?

Редактировать: Мой package.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
  "main": "lib/index.js",
  "dependencies": {
    "@google-cloud/storage": "^2.5.0",
    "@types/fs-extra": "^7.0.0",
    "firebase-admin": "^8.1.0",
    "firebase-functions": "^3.0.1",
    "fs-extra": "^8.0.1",
    "mailgun-js": "^0.22.0",
    "sharp": "^0.22.1",
    "stripe": "^7.1.0"
  },
  "devDependencies": {
    "@types/sharp": "^0.22.2",
    "@types/stripe": "^6.30.0",
    "firebase-functions-test": "^0.1.6",
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },
  "private": true
}

1 Ответ

1 голос
/ 14 июня 2019

После репликации я обнаружил эту ветку похоже, что для этой проблемы есть открытый случай.

Подобная установка отлично работает для Firestore, но, похоже, проблема заключается вс RTDB, я полагаю, мы должны подождать, пока они не решат ее, извините :(

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...