
next.js无服务器的PWA带有firebase和React钩子

注意1:此样板正在转换为打字稿。有关纯JavaScript,请参阅分支old-javascript
注2:这是我用于React Web应用程序的V4样板。另请参见我的GraphQl + Postgres SQL样板,Redux + REST + Postgres SQL样板和Redux + REST + REST + MONGODB样板。有关简单的下一步。JS着陆页,请参见NextJs-Generic-generic-landing页面。
您或您的公司是否发现nextjs-pwa-firebase-boilerplate有用?请考虑提供少量捐款,它可以帮助我花更多的时间在开源项目上:
这是您想要反应(带有挂钩) (静态站点生成(SSG)或服务器端渲染(SSR)(由Next.js供电)作为前端和Firebase作为后端的任何项目(带有静态站点(SSG)或服务器端渲染(SSR)(SSR))的绝佳模板。快速闪电,所有JavaScript。
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文件的灵活配置。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时,请启动Web应用程序:
yarn dev
在生产中:
yarn build
yarn start
如果您导航到http://localhost:3004/您将看到一个带有文章列表的网页(或者尚未添加的网页)。
name的“ next.js firebase pwa”,“ nextjs-pwa-firebase-boilerplate”和description “ Next.js无用PWA,带有firebase and react钩子”。package.json中的version更改为0.1.0或类似。package.json中的license 。主数据库项目称为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的东西。
设置数据库(如果您不需要数据库,请参见下面的“如何删除/替换为数据库”):
firebaseConfig (从设置Firebase Web应用程序)复制到lib/data/firebase.ts.env.local文件,设置NEXT_PUBLIC_FIREBASE_API_KEY值。yarn remove firebaselib/data/firebase.ts和修改hooks/useArticles.tsx 。sql-wizard中使用createSqlRestRoutesServerless来设置自己的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/firebase JS文件pages/_app.tsx中的CSS文件public/app.css中更改CSSPageHead.tsx中的字体public/manifest.json中更改颜色。您需要在https://console.firebase.google.com/project/yourapp/yourapp/authentication/providers中启用电子邮件/密码身份验证
注意:如果您使用部署按钮设置项目,则需要克隆自己的存储库而不是此存储库。
使用此模板与Vercel进行设置并部署自己的项目。您需要的只是您的Firebase公共API密钥。