
next.js FirebaseとReactフックを備えたServerLess PWA

注1:このボイラープレートはTypeScriptに変換されています。純粋なJavaScriptについては、Branch old-javascriptを参照してください
注2:これは、React Webアプリ用の私のV4ボイラープレートです。私のGraphQL + Postgres SQLボイラープレート、Redux + REST + POSTGRES SQL BOILERPLATEおよびREDUX + REST + MONGODBボイラープレートも参照してください。 Simple next.jsランディングページについては、nextjs-generic-landing-pageを参照してください。
あなたまたはあなたの会社はnextjs-pwa-firebase-boilerplateが便利だと思いましたか?少量の寄付をすることを検討してください、それは私がオープンソースプロジェクトにより多くの時間を費やすのに役立ちます:
これは、フロントエンドおよびファイアベースとしてバックエンドとしてファイアベースとして搭載されている(フックを使用して)反応するプロジェクト(フックを使用) ( staticサイト生成(SSG)またはサーバー側のレンダリング(SSR)を使用)に最適なテンプレートです。高速、すべてのJavaScript。
manifest.jsonやオフラインサポートなどのPWA機能( next-offline )。getStaticPropsまたはSSR getServerSidePropsを使用できます。getStaticProps / getServerSidePropsを変更します。sitemap.xmlおよびrobots.txtを使用したSEOサポート。google-site-verification Support( config/config.ts参照)。config/config.tsおよび.env.localファイルを使用した柔軟な構成。yarn lint / yarn fix )を使用したコードの糸くずとフォーマット。yarn unit 、まだ含まれていない)。
vercelで実行されているnextjs-pwa-firebase-boilerplateはこちらをご覧ください。

このリポジトリをクローンします:
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/にナビゲートすると、記事のリスト(または追加していない場合は空のリスト)があるWebページが表示されます。
nameの「next.js firebase pwa」、「nextjs-pwa-firebase-boilerplate」、 description 「next.js js serverless pwa with firebase and react fook」を他の何かに検索/交換してください。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を検索/交換してください。
データベースを設定します(データベースが必要ない場合は、以下の「データベースとしてFirebaseを削除/交換する方法」を参照してください):
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.localに追加しますlib/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でCSSを変更しますPageHead.tsxでフォントを変更しますpublic/manifest.jsonの色を変更しますhttps://console.firebase.google.com/project/yourapp/authentication/providersで電子メール/パスワード認証を有効にする必要があります
注:展開ボタンを使用してプロジェクトをセットアップする場合は、このリポジトリの代わりに独自のレポをクリックする必要があります。
vercelを使用して、このテンプレートを使用して独自のプロジェクトをセットアップおよび展開します。必要なのは、FireBase Public APIキーだけです。