- Копируем проект c git
rm -r .git -forceудаляем .git файлыnpm installв папке srcnpm installв папке functions
- Копируем
.envфайл из.evn.example - Создать проект в firebase https://console.firebase.google.com/u/1/
- Скопировать доступы в .env файл из firebase
- Соранить серверные настройки в json файле (детальнее в .env файле)
- Создать Realtime Database (НЕ Cloud Firestore!)
- Пройти инструкции по настройки флеймлинк https://app.flamelink.io/dashboard
- Realtime Database
- Пройти три шага
- Создать структуру контента или восстановить пример из бекапа flamelink_default_schema.json
- Вставить расширенные правила для БД
- Установка firebase
- Установить
npm install -g firebase-tools firebase login- В папке проекта
firebase init hosting(choose not SPA, folderpublic) - Файл /firebase.json взять из репозитория
- Сбилдить проект
npm run buildв /src папке - in root folder run commands:
rm -r public/*rm -r functions/nuxt/cp -R src/static/* public/cp -R src/.nuxt/dist/client/ public/dist/cp -R src/.nuxt/ functions/nuxt/
- (optional) Check on local environment
firebase serve --only hosting,functions - Deploy on firebase server
firebase deploy
Пример правил Realtime Database которые открывают доступ на чтение flamelink без авторизации без раздела settings
{
"rules": {
"users": {
"$user_id": {
".read": "$user_id === auth.uid",
".write": "$user_id === auth.uid"
}
},
"flamelink": {
".read": "auth != null",
".write": "auth != null",
"$module": {
".read": "auth != null || $module == 'environments' || $module == 'media' || $module == 'settings'",
".write": "auth != null",
"$environment": {
"content": {
"$block": {
"$lang": {
".indexOn": ["slug"]
}
}
}
}
},
"users": {
".indexOn": ["id", "email"]
}
}
}
}