08dcbdca9c
* [with-firebase-authentication] remove deprecated warning * [with-firebase-authentication] improve client and server credentials example * [with-firebase-authentication] fix typo in the docs
2.3 KiB
2.3 KiB
With Firebase Authentication example
How to use
Using create-next-app
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 manually
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 project 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 project settings>general>your apps Add a new web app if you don't already have one. Under Firebase SDK snippet choose Config to get the configuration as JSON. It will include keys like
apiKey
,authDomain
anddatabaseUrl
and it goes into your project incredentials/client.js
. - Back at the Firebase web console, go to Authentication>Sign-in method and enable Google.
- Create a database in the "Database" tab and select Firestore. Then go to "rules" and set up your write, read rules to this:
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
Install it and run:
npm install
npm run dev
# or
yarn
yarn dev
Deploy it to the cloud with now (download)
now
The idea behind the example
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.