this.app.database не является функцией при использовании firebase-сервера для модульного тестирования - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь использовать firebase-сервер (https://github.com/urish/firebase-server) для модульного тестирования экспресс-приложения, использующего firebase. Однако я начинаю с того, что просто запускаю firebase-сервер на своей машине.

Я установил библиотеку локально: npm install --save-dev firebase-server

Затем, используя документацию для firebase-сервера, он говорит:

Если установлен локально, используйте следующий путь кзапустите сервер: ./node_modules/.bin/firebase-server

Следующая команда запустит сервер firebase на порту 5555:

firebase-server -p 5555

Из корня моего проекта я запускаю ./node_modules/.bin/firebase-server -p 5555

Результат:

/Users/user/Work/myproject/node_modules/firebase-server/dist/index.js:78
        this.app.database().goOffline();
                 ^

TypeError: this.app.database is not a function
    at new FirebaseServer (/Users/user/Work/myproject/node_modules/firebase-server/dist/index.js:78:18)
    at Object.<anonymous> (/Users/user/Work/myproject/node_modules/firebase-server/bin/firebase-server.js:85:17)
    at Object.cli.main (/Users/user/Work/myproject/node_modules/cli/cli.js:957:14)
    at Object.<anonymous> (/Users/user/Work/myproject/node_modules/firebase-server/bin/firebase-server.js:30:5)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Function.Module.runMain (module.js:690:10)

Нужно ли мне делать какие-то другие настройки, чтобы заставить firebase-сервер работать через cli?

Дополнительная информация: я смог запустить сервер, если я установил firebase-сервер глобально, но все еще не смог запустить его из моего каталога репозитория в node_modules

package.json

{
"name": "endpoints",
"description": "my description",
"version": "0.0.1",
"private": true,
"license": "Apache-2.0",
"author": "JL",
"repository": {
    "type": "git",
    "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
},
"engines": {
    "node": ">=8.0.0"
},
"scripts": {
    "start": "node app.js",
    "test": "repo-tools test run --cmd ava -- -T 20s --verbose test/*.test.js"
},
"dependencies": {
    "@google-cloud/logging": "^4.2.0",
    "body-parser": "1.18.3",
    "express": "4.16.4",
    "firebase-admin": "~4.2.1",
    "safe-buffer": "5.1.2",
    "firebase": "5.8.3",
    "@firebase/app": "0.3.8",
    "@firebase/auth": "0.9.2",
    "@firebase/database": "0.3.12",
    "request-promise": "4.2.2"
},
"devDependencies": {
    "@google-cloud/nodejs-repo-tools": "^3.0.0",
    "ava": "0.25.0",
    "firebase-server": "^1.0.1",
    "husky": "^1.3.1",
    "proxyquire": "2.1.0",
    "sinon": "7.2.2",
    "supertest": "3.3.0"
},
"husky": {
    "hooks": {
        "pre-push": "npm test"
    }
}
}

1 Ответ

0 голосов
/ 21 февраля 2019

Спасибо, что поделились своим package.json.Проблема заключается в зависимости "@ firebase / app": "0.3.8",
Если вы удалите его из package.json, очистите файлы node_modules и package-lock, переустановите занововаши зависимости, и вы должны увидеть работу сервера firebase.

На странице npmjs сказано, чтобы использовать его для создания экземпляра клиента для подключения к серверу отдельно: https://www.npmjs.com/package/firebase-server
Кроме того, в @Страница firebase / app (https://www.npmjs.com/package/@firebase/app) вы можете прочитать:

Этот пакет не предназначен для прямого использования и должен использоваться только через официально поддерживаемый пакет firebase.

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