Execute create-next-app
with Yarn or npx to bootstrap the example:
npx create-next-app --example with-firebase-authentication with-firebase-authentication-app
# or
yarn create next-app --example with-firebase-authentication with-firebase-authentication-app
Download the example:
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-firebase-authentication
cd with-firebase-authentication
Set up firebase:
- Create a project at the Firebase console.
- Get your account credentials from the Firebase console at settings>service accounts, where you can click on generate new private key and download the credentials as a json file. It will contain keys such as
project_id
,client_email
andclient id
. Now copy them into your project in thecredentials/server.js
file. - Get your authentication credentials from the Firebase console under authentication>users>web setup. It will include keys like
apiKey
,authDomain
anddatabaseUrl
and it goes into your project incredentials/client.js
. - Copy the
databaseUrl
key you got in the last step intoserver.js
in the corresponding line. - Back at the Firebase web console, go to authentication>signup method and select Google.
- Create a database in the "Database" tab and select the realtime database. Then go to "rules" and set up your write, read rules. Examples can be found here: https://firebase.google.com/docs/database/security/quickstart#sample-rules
Install it and run:
npm install
npm run dev
# or
yarn
yarn dev
Deploy it to the cloud with now (download)
now
The goal is to authenticate users with firebase and store their auth token in sessions. A logged in user will see their messages on page load and then be able to post new messages.