Grâce à la Firebase CLI, vous pouvez déployer vos applications Web Next.js sur Firebase et les diffuser avec Firebase Hosting.
Diffuser du contenu statique
Après avoir initialisé Firebase, vous pouvez diffuser du contenu statique à l'aide de la commande de déploiement standard :
firebase deploy
Si votre application inclut une logique dynamique côté serveur, la CLI déploie cette logique dans Cloud Functions for Firebase. Vous pouvez afficher votre application déployée sur son site en direct.
Pré-rendre du contenu dynamique
La CLI Firebase détecte l'utilisation de getStaticProps et getStaticPaths.
Facultatif : intégrer le SDK Firebase JS
Lorsque vous incluez des méthodes du SDK Firebase JS dans les bundles serveur et client, protégez-vous contre les erreurs d'exécution en vérifiant isSupported() avant d'utiliser le produit.
Tous les produits ne sont pas
compatibles avec tous les environnements.
Facultatif : intégrer le SDK Admin Firebase
Les bundles du SDK Admin échoueront s'ils sont inclus dans votre build de navigateur. Ne les référez que dans getStaticProps et getStaticPaths.
Diffuser du contenu entièrement dynamique (SSR)
La CLI Firebase détecte l'utilisation de getServerSideProps. Dans ce cas, la CLI déploie des fonctions dans Cloud Functions for Firebase afin d'exécuter du code serveur dynamique. Vous pouvez afficher des informations sur ces fonctions, telles que leur domaine et leur configuration d'exécution, dans la console Firebase.
Configurer le comportement avec Hostingnext.config.js
Optimisation des images
L'optimisation des images Next.js est compatible, mais elle déclenchera la création d'une fonction (dans Cloud Functions for Firebase), même si vous n'utilisez pas SSR.
Redirections, réécritures et en-têtes
La CLI Firebase respecte les
redirections,
réécritures et les
en-têtes dans
next.config.js, en les convertissant en leur configuration Firebase Hosting équivalente au moment du déploiement. Si une
redirection, une réécriture ou un en-tête Next.js ne peuvent pas être convertis en un en-tête équivalent
Firebase Hosting, ils sont rétablis et créent une fonction, même si vous
n'utilisez pas l'optimisation des images ni SSR.
Facultatif : intégrer Firebase Authentication
L'outil de déploiement Firebase compatible avec les frameworks Web synchronise automatiquement l'état du client et du serveur à l'aide de cookies. Plusieurs méthodes permettent d'accéder au contexte d'authentification dans SSR :
- L'objet Express
res.localscontient éventuellement une instance d'application Firebase authentifiée (firebaseApp) et l'utilisateur actuellement connecté (currentUser). Vous pouvez y accéder dansgetServerSideProps. - Le nom de l'application Firebase authentifiée est fourni dans la requête de route (
__firebaseAppName). Cela permet une intégration manuelle dans le contexte :
// get the authenticated Firebase App
const firebaseApp = getApp(useRouter().query.__firebaseAppName);