В этом примере использования firebase-server
может отсутствовать то, что 127.0.0.1 localhost.firebaseio.test
необходимо добавить в /etc/hosts
, иначе это может не решить. как видно из firebase-server -h
, нужно передать файлы JSON конфигурации и данных в качестве опций. предложил бы использовать «Базу данных реального времени» и «Облачные функции» вместо попытки запустить собственный сервер WS - потому что для тестирования нужно было бы предоставить ожидаемые файлы JSON - и внешняя библиотека JavaScript, скорее всего, не сможет аутентифицироваться, следовательно, необходимы учетные данные.
В документации говорится, что firebase-server
является сервером веб-сокетов Firebase (который звучит автономно и может реализовывать RFC 6455 ); это что-то отличное от firebase serve
(мне непонятно, что вы имеете в виду, поэтому примеры были перепутаны - что может быть источником путаницы) ... для Google Firebase
можно получить тестовый сервер и эмулятор облачных функций с npm install -g firebase-tools
; и при запуске локального тестового сервера с параметром --debug
он должен показать, где он может застрять:
firebase serve --debug
выполняется из каталога проекта.
например. может отсутствовать разрешение на доступ к каталогам глобально установленных модулей:
sudo mkdir /usr/lib/node_modules/firebase-tools/node_modules/@google-cloud/functions-emulator/logs
sudo chown -R ....
установка @google-cloud/functions-emulator
на уровне проекта также может обойти это.
и вам также потребуется firebase.json
, который контролирует развертывание.
например, загрузка public/index.html
, которая затем загружает firebasejs/5.0.1/firebase.js
, потребуется для проверки в интерфейсном JavaScript, если аутентификация прошла успешно (firebase setup:web
генерирует код) и пользователь аутентифицирован и имеет разрешения на read/write
по определенному ссылочному пути.
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/node_modules/**"
]
}
}
, в то время как firebase functions:shell
будет запускать этот эмулятор функций в качестве оболочки Node.
firebase/index.js
для nodeJS, и, например,. firebase/package.json
может ссылаться:
{
"name": "...",
"description": "...",
"private": true,
"dependencies": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1",
"@firebase/database": "^0.1.10",
"@google-cloud/logging": "^1.1.4"
}
}
firebase-admin
может потребоваться учетная запись службы:
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://databaseName.firebaseio.com"
});
руководства также объясняют большую часть этого ... и, конечно, firebase --help
.