nuxt-firebase-webframework v0.0.10
Firebase Webframeworks Nuxt Module
A nuxt module for using Firebase Webframeworks with Nuxt to deploy full stack applications on Firebase 🎉
Features
- Low config
- Easy to use
- Supports Firebase Preview channels
- Uses Firebase Functions 2nd Gen for SSR
Quick Setup
- Add
nuxt-firebase-webframeworkdependency to your project
# Using pnpm
pnpm add -D nuxt-firebase-webframework
# Using yarn
yarn add --dev nuxt-firebase-webframework
# Using npm
npm install --save-dev nuxt-firebase-webframework- Add
firebase-adminandfirebase-functionsdependencies to your project
# Using pnpm
pnpm add firebase-admin firebase-functions
# Using yarn
yarn add firebase-admin firebase-functions
# Using npm
npm install firebase-admin firebase-functions- Add
nuxt-firebase-webframeworkto themodulessection ofnuxt.config.ts
export default defineNuxtConfig({
modules: [
'nuxt-firebase-webframework'
]
})- Set
ssr: trueinnuxt.config.ts
export default defineNuxtConfig({
ssr: true
modules: [
'nuxt-firebase-webframework'
]
})- Configure firebase webframeworks using the
firebaseWebframeworkkey innuxt.config.ts.
export default defineNuxtConfig({
ssr: true
modules: [
'nuxt-firebase-webframework'
],
// example configuration - all options below
firebaseWebframework: {
projects: {
default: "my-firebase-project-id"
},
frameworksBackend: {
minInstances: 0,
maxInstances: 4,
concurrency: 80,
region: "europe-west1"
}
}
})That's it! You can now run npm run dev and npm run build to test it out.
Note:
You will need to either configure a firebaseWebframework.projects.default in nuxt.config.ts, or have a .firebaserc file in your project root to use the firebase deploy command.
Deployment
Make sure you have the firebase cli installed locally. See here for instructions.
Important:
You will need to enable the experimental webframeworks feature using the firebase cli tool. This only needs to be done once per installation of firebase-tools. Remember to do this in your cloud build environment if you are using CI/CD.
firebase experiments:enable webframeworksMake sure you are working with the correct firebase project:
firebase use my-firebase-project-idUse the firebase deploy command to deploy your app.
firebase deployHint:
You can deploy to multiple projects by specifying the project name:
firebase deploy --project stagingCheck out the firebase deploy cli docs for more information.
Options
firebaseWebframework.projects
- Type:
Object - Default:
{} - Required:
false
A map of project names to project ids. This is used to configure .firebaserc file which is used by the firebase cli to determine which project(s) to deploy to. Checkout the Firebase project alias documentation
Example:
export default defineNuxtConfig({
firebaseWebframework: {
projects: {
default: "my-firebase-project-id-staging",
staging: "my-firebase-project-id-staging",
production: "my-firebase-project-id-production"
}
}
})firebaseWebframework.frameworksBackend
- Type:
HttpRequestOptions - Default:
{} - Required:
false
These options are a direct map to the firebase functions 2nd gen options. They are used to configure the firebase functions that are used to serve the nuxt app.
Note that not all regions support firebase webframworks yet. The current supported regions are:
us-central1us-west1us-east1europe-west1asia-east1
There is a PR open for firebase-tools cli to add more regions that you should thumbs up if you want to see more regions supported.
Example:
export default defineNuxtConfig({
firebaseWebframework: {
frameworksBackend: {
minInstances: 0,
maxInstances: 4,
concurrency: 80,
region: "europe-west1"
},
projects: {
default: "my-firebase-project-id"
}
}
})