
next.js serverless pwa พร้อม firebase และ react hooks

หมายเหตุ 1: แผ่นหม้อต้มนี้กำลังถูกแปลงเป็น typeScript สำหรับจาวาสคริปต์บริสุทธิ์ให้ดูสาขา old-javascript
หมายเหตุ 2: นี่คือ V4 Boilerplate ของฉันสำหรับ React Web Apps ดูเพิ่มเติมที่ GraphQl + Postgres SQL Boilerplate, Redux + REST + Postgres SQL Boilerplate และ Redux + REST + MongoDB Boilerplate สำหรับหน้า Landing Page Next.js ให้ดูที่ NextJS-Generic-Landing-Page
คุณหรือ บริษัท ของคุณพบว่า nextjs-pwa-firebase-boilerplate มีประโยชน์หรือไม่? โปรดพิจารณาบริจาคเล็กน้อยช่วยให้ฉันใช้เวลามากขึ้นในโครงการโอเพนซอร์ซ:
นี่เป็นเทมเพลตที่ยอดเยี่ยมสำหรับโครงการใด ๆ ที่คุณต้องการ ตอบสนอง (พร้อมตะขอ) (พร้อม การสร้างไซต์แบบคงที่ (SSG) หรือ การเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR) ขับเคลื่อนโดย Next.js) เป็นส่วนหน้าและ Firebase เป็นแบ็กเอนด์ Lightning Fast JavaScript ทั้งหมด
manifest.json และการสนับสนุนออฟไลน์ ( next-offline )getStaticProps หรือ SSR getServerSidePropsgetStaticProps / getServerSideProps เมื่อเปลี่ยน / เพิ่มตารางฐานข้อมูลsitemap.xml และ robots.txtgoogle-site-verification (ดู config/config.ts )config/config.ts และ .env.localyarn lint / yarn fix )yarn unit ยังไม่รวมอยู่)
ดู NextJS-PWA-FIREBASE-BOILERPLATE ที่ทำงานบน Vercel ที่นี่

โคลนที่เก็บนี้:
git clone https://github.com/tomsoderlund/nextjs-pwa-firebase-boilerplate.git [MY_APP]
cd [MY_APP]
ลบโฟลเดอร์ .git เนื่องจากคุณต้องการสร้างที่เก็บใหม่
rm -rf .git
ติดตั้งการพึ่งพา:
yarn # or npm install
ณ จุดนี้คุณต้องตั้งค่า Firebase Firestore ดูด้านล่าง
เมื่อตั้งค่า Firebase ให้เริ่มเว็บแอปโดย:
yarn dev
ในการผลิต:
yarn build
yarn start
หากคุณนำทางไปยัง http://localhost:3004/ คุณจะเห็นหน้าเว็บที่มีรายการบทความ (หรือรายการว่างถ้าคุณยังไม่ได้เพิ่ม)
name “ Next.js Firebase PWA”,“ NextJS-PWA-FIREBASE-BOILERPLATE” และ description “ NEXT.JS Serverless PWA พร้อม Firebase และ React Hooks”version ใน package.json เป็น 0.1.0 หรือคล้ายกันlicense ใน package.json เป็นสิ่งที่เหมาะสมกับโครงการของคุณ รายการฐานข้อมูลหลักเรียกว่า Article แต่คุณอาจต้องการอย่างอื่นในแอพของคุณ
เปลี่ยนชื่อไฟล์:
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
จากนั้นทำการค้นหา/แทนที่ภายในไฟล์สำหรับปลอกที่แตกต่างกัน: article , Article , ARTICLE
ค้นหา/แทนที่ 3004 เป็นอย่างอื่น
ตั้งค่าฐานข้อมูล (หากคุณไม่ต้องการฐานข้อมูลโปรดดู“ วิธีลบ/แทนที่ Firebase เป็นฐานข้อมูล” ด้านล่าง):
firebaseConfig (จากเมื่อตั้งค่าแอป Firebase Web) ไปยัง lib/data/firebase.ts.env.local ตั้งค่า NEXT_PUBLIC_FIREBASE_API_KEYyarn remove firebaselib/data/firebase.ts และแก้ไข hooks/useArticles.tsxcreateSqlRestRoutesServerless ใน sql-wizard เพื่อตั้งค่าเส้นทาง API ของคุณเองyarn remove firebaseyarn add @supabase/supabase-jsNEXT_PUBLIC_SUPABASE_API_KEY to .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.jsonคุณต้องเปิดใช้งานการตรวจสอบอีเมล/รหัสผ่านใน https://console.firebase.google.com/project/yourapp/authentication/providers
หมายเหตุ: หากคุณตั้งค่าโครงการของคุณโดยใช้ปุ่มปรับใช้คุณต้องโคลน repo ของคุณเองแทนที่เก็บนี้
การตั้งค่าและปรับใช้โครงการของคุณเองโดยใช้เทมเพลตนี้ด้วย Vercel สิ่งที่คุณต้องการคือคีย์ API สาธารณะ Firebase ของคุณ