
NEXT.js PWA sans serveur avec Firebase et React Hooks

Remarque 1: Cette passe-partout est convertie en TypeScript. Pour pur javascript, voir Branch old-javascript
Remarque 2: Ceci est mon chaudron V4 pour les applications Web React. Voir aussi mon GraphQL + Postgres SQL Playplate, Redux + REST + Postgres SQL Playplate et Redux + REST + MongoDB Boilerplate. Pour une page de destination simple Next.js, voir NextJS-Generic-Wermeging-Page.
Vous ou votre entreprise avez-vous trouvé nextjs-pwa-firebase-boilerplate UTILISÉ? Veuillez envisager de faire un petit don, cela m'aide à passer plus de temps sur des projets open source:
Ceci est un excellent modèle pour un projet où vous voulez réagir (avec des crochets) (avec la génération de sites statiques (SSG) ou le rendu côté serveur (SSR) , alimenté par Next.js) en tant que frontend et Firebase comme backend. Lightning Fast, tout javascript.
manifest.json et le support hors ligne ( next-offline ).getStaticProps ou SSR getServerSideProps .getStaticProps / getServerSideProps lors de la modification / ajout de tables de base de données.sitemap.xml et robots.txt .google-site-verification Prisence (voir config/config.ts ).config/config.ts et .env.local Fichier.yarn lint / yarn fix ).yarn unit , pas encore incluse).
Voir NEXTJS-PWA-FIREBASE-BOILERPALLAGE fonctionnant sur Vercel ici.

Cloner ce référentiel:
git clone https://github.com/tomsoderlund/nextjs-pwa-firebase-boilerplate.git [MY_APP]
cd [MY_APP]
Supprimer le dossier .git car vous souhaitez créer un nouveau référentiel
rm -rf .git
Installez les dépendances:
yarn # or npm install
À ce stade, vous devez configurer Firebase Firestore, voir ci-dessous.
Lorsque Firebase est configuré, démarrez l'application Web par:
yarn dev
En production:
yarn build
yarn start
Si vous naviguez vers http://localhost:3004/ Vous verrez une page Web avec une liste d'articles (ou une liste vide si vous n'en avez pas ajouté).
name «Next.js Firebase PWA», «NextJS-PWA-FIREBASE-BOILERPLAT» et description «Next.js PWA sans serveur avec Firebase et React Hooks» à autre chose.version dans package.json en 0.1.0 ou similaire.license dans package.json en tout ce qui convient à votre projet. L'élément de base de données principale s'appelle Article , mais vous voulez probablement autre chose dans votre application.
Renommez les fichiers:
git mv hooks/useArticles.tsx hooks/use{NewName}s.tsx
mkdir -p components/{newName}s
git mv components/articles/CreateArticleForm.tsx components/{newName}s/Create{NewName}Form.tsx
git mv components/articles/ArticleDetails.tsx components/{newName}s/{NewName}Details.tsx
git mv components/articles/ArticleList.tsx components/{newName}s/{NewName}List.tsx
git mv components/articles/ArticleListItem.tsx components/{newName}s/{NewName}ListItem.tsx
rm -r components/articles
mkdir pages/{newName}s
git mv "pages/articles/[slug].tsx" "pages/{newName}s/[slug].tsx"
rm -r pages/articles
Ensuite, recherchez / remplacez dans les fichiers pour différents boîtiers: article , Article , ARTICLE .
Recherchez / remplacez 3004 à autre chose.
Configurez la base de données (si vous n'avez pas besoin d'une base de données, voir «Comment supprimer / remplacer la base de feu comme base de données» ci-dessous):
firebaseConfig (depuis la configuration de l'application Web Firebase) sur lib/data/firebase.ts.env.local en définissant la valeur NEXT_PUBLIC_FIREBASE_API_KEY .yarn remove firebaselib/data/firebase.ts et modifier hooks/useArticles.tsx .createSqlRestRoutesServerless dans sql-wizard pour configurer vos propres itinéraires API.yarn remove firebaseyarn add @supabase/supabase-jsNEXT_PUBLIC_SUPABASE_API_KEY à .env.locallib/data/supabase.ts : import { createClient } from '@supabase/supabase-js'
const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL
const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_API_KEY
export const supabase = createClient(supabaseUrl, supabaseKey)
lib/data/firebasepages/_app.tsxpublic/app.cssPageHead.tsxpublic/manifest.jsonVous devez activer l'authentification par e-mail / mot de passe dans https://console.firebase.google.com/project/yourapp/authentication/providers
Remarque: Si vous configurez votre projet à l'aide du bouton Déployer, vous devez cloner votre propre référentiel au lieu de ce référentiel.
Configurez et déployez votre propre projet en utilisant ce modèle avec Vercel. Tout ce dont vous aurez besoin, c'est de votre clé API publique Firebase.