Я бы хотел использовать Vue.js для функций внешнего интерфейса и Firebase (Express.js) + Firestore на Backend.
0 шаг: я создал новый проект в Google Firebase, я создал новую учетную запись службы с разрешениями владельца (для использования позже с Admin SDK)
1-й шаг: я установил vue-cli v3 и создал проект:
$ vue create my-project
$ npm run serve //localhost:8080 OK
2-й шаг:
$npm install firebase firebase-admin firebase-functions --save
Структура папок:
my-project
.firebaserc //created (edited) manually
babel.config.js
firebase.json //created (edited) manually
package.json
dist
node_modules
public
src
assets
components
firebase
functions
index.js //here are my functions
service-accounts
views
firebase.json: (скопировано из другого проекта и отредактировано вручную)
{
"functions:": {
"source": "src/firebase/functions"
},
"hosting": {
"public": "public",
"ignore": [...]
}
}
SRC / функции / index.js:
import functions from 'firebase-functions';
import admin from 'firebase-admin';
const serviceAccount = require('../service-accounts/owner-key.json');
admin.initializeApp({
credentials: admin.credencial.cert(serviceAccount),
databaseURL: 'my-project.firebaseio.com'
})
const db = admin.firestore();
...
В файл package.json я добавил дополнительные скрипты:
"deploy": "vue-cli-service build && firebase deploy --only hosting,functions"
но когда я запускаю команду " npm run deploy ", я получаю сообщение об ошибке:
Пакет npm не найден в каталоге исходных функций. Пожалуйста, запустите 'npm init' внутри src / firebase / functions
У меня следующий вопрос: почему он должен устанавливать пакеты функций firebase только внутри директории с исходными функциями, и я могу использовать firebase-функции, которые я установил в папке node_modules верхнего уровня?