
Next.js serverless pwa dengan firebase dan react hooks

CATATAN 1: Boilerplate ini sedang dikonversi ke TypeScript. Untuk JavaScript murni, lihat cabang old-javascript
Catatan 2: Ini adalah boilerplate V4 saya untuk aplikasi web React. Lihat juga GraphQL + Postgres SQL Boilerplate saya, Redux + REST + POSTGRES SQL Boilerplate dan Redux + REST + MONGODB Boilerplate. Untuk halaman pendaratan Next.js yang sederhana, lihat halaman Landing-Generic-Generic NextJs.
Apakah Anda atau perusahaan Anda menemukan nextjs-pwa-firebase-boilerplate bermanfaat? Harap pertimbangkan untuk memberikan donasi kecil, ini membantu saya menghabiskan lebih banyak waktu untuk proyek open-source:
Ini adalah template yang bagus untuk proyek apa pun di mana Anda ingin bereaksi (dengan kait) (dengan pembuatan situs statis (SSG) atau rendering sisi server (SSR) , ditenagai oleh Next.js) sebagai frontend dan firebase sebagai backend. Petir Cepat, semua JavaScript.
manifest.json dan dukungan offline ( next-offline ).getStaticProps atau SSR getServerSideProps .getStaticProps / getServerSideProps saat mengubah / menambahkan tabel basis data.sitemap.xml dan robots.txt .google-site-verification (lihat config/config.ts ).config/config.ts dan .env.local .yarn lint / yarn fix ).yarn unit , belum termasuk).
Lihat NextJS-PWA-Firebase-Boilerplate berjalan di Vercel di sini.

Klon Repositori ini:
git clone https://github.com/tomsoderlund/nextjs-pwa-firebase-boilerplate.git [MY_APP]
cd [MY_APP]
Hapus folder .git karena Anda ingin membuat repositori baru
rm -rf .git
Instal dependensi:
yarn # or npm install
Pada titik ini, Anda perlu mengatur Firebase Firestore, lihat di bawah.
Saat Firebase diatur, mulailah aplikasi web dengan:
yarn dev
Dalam produksi:
yarn build
yarn start
Jika Anda menavigasi ke http://localhost:3004/ Anda akan melihat halaman web dengan daftar artikel (atau daftar kosong jika Anda belum menambahkannya).
name "Next.js Firebase PWA", "NextJS-PWA-Firebase-Boilerplate" dan description "Next.js PWA tanpa server dengan Firebase dan React Hooks" ke sesuatu yang lain.version dalam package.json ke 0.1.0 atau serupa.license dalam package.json untuk apa pun yang sesuai dengan proyek Anda. Item database utama disebut Article , tetapi Anda mungkin menginginkan sesuatu yang lain di aplikasi Anda.
Ubah nama file:
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
Kemudian, lakukan pencarian/ganti di dalam file untuk casing yang berbeda: article , Article , ARTICLE .
Lakukan pencarian/ganti untuk 3004 ke sesuatu yang lain.
Atur database (jika Anda tidak memerlukan database, lihat “Cara Menghapus/Mengganti Firebase Sebagai Database” di bawah):
firebaseConfig (dari saat menyiapkan aplikasi Web Firebase) ke lib/data/firebase.ts.env.local , mengatur nilai NEXT_PUBLIC_FIREBASE_API_KEY .yarn remove firebaselib/data/firebase.ts dan memodifikasi hooks/useArticles.tsx .createSqlRestRoutesServerless di sql-wizard untuk mengatur rute API Anda sendiri.yarn remove firebaseyarn add @supabase/supabase-jsNEXT_PUBLIC_SUPABASE_API_KEY ke .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.jsonAnda perlu mengaktifkan otentikasi email/kata sandi di https://console.firebase.google.com/project/yourapp/authentication/providers
Catatan: Jika Anda mengatur proyek Anda menggunakan tombol Deploy, Anda perlu mengkloning repo Anda sendiri alih -alih repositori ini.
Mengatur dan menggunakan proyek Anda sendiri menggunakan templat ini dengan Vercel. Yang Anda butuhkan hanyalah kunci API publik Firebase Anda.