
next.js serverless pwa مع Firebase و React Hooks

الملاحظة 1: يتم تحويل هذا الغلاية إلى TypeScript. للاطلاع على JavaScript ، انظر فرع old-javascript
ملاحظة 2: هذا هو V4 Boilerplate لتطبيقات Web React. انظر أيضًا GraphQl + Postgres SQL Boilerplate ، Redux + Rest + Postgres SQL Boilerplate و Redux + Rest + MongoDB Boilerplate. للاطلاع على صفحة مقصودة بسيطة. js ، انظر صفحة NextJS-Generic-Landing.
هل وجدت أنت أو شركتك nextjs-pwa-firebase-boilerplate مفيدة؟ يرجى التفكير في تقديم تبرع صغير ، فهو يساعدني على قضاء المزيد من الوقت في مشاريع المصدر المفتوح:
هذا قالب رائع لأي مشروع تريد React (مع السنانير) (مع توليد الموقع الثابت (SSG) أو عرض من جانب الخادم (SSR) ، مدعوم من Next.js) كواجهة أمامية و Firebase كخلفية. البرق بسرعة ، كل جافا سكريبت.
manifest.json والدعم غير المتصلة بالإنترنت ( next-offline ).getStaticProps أو ssr getServerSideProps .getStaticProps / getServerSideProps عند تغيير / إضافة جداول قاعدة البيانات.sitemap.xml و robots.txt .google-site-verification Support (انظر config/config.ts ).config/config.ts و .env.local file.yarn 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) إلى lib/data/firebase.ts.env.local ، قم بإعداد قيمة NEXT_PUBLIC_FIREBASE_API_KEY .yarn remove firebaselib/data/firebase.ts وتعديل hooks/useArticles.tsx .createSqlRestRoutesServerless في sql-wizard لإعداد طرق 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.jsonتحتاج إلى تمكين مصادقة البريد الإلكتروني/كلمة المرور في https://console.firebase.google.com/project/yourapp/authentication/providers
ملاحظة: إذا قمت بإعداد مشروعك باستخدام زر النشر ، فأنت بحاجة إلى استنساخ الريبو الخاص بك بدلاً من هذا المستودع.
قم بإعداد ونشر مشروعك الخاص باستخدام هذا القالب مع Vercel. كل ما ستحتاجه هو مفتاح FireBase Public API.