-
Notifications
You must be signed in to change notification settings - Fork 27.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'canary' into font-defaults
- Loading branch information
Showing
29 changed files
with
1,308 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
import admin from '../firebase/nodeApp' | ||
|
||
export const getProfileData = async (username) => { | ||
const db = admin.firestore() | ||
const profileCollection = db.collection('profile') | ||
const profileDoc = await profileCollection.doc(username).get() | ||
|
||
if (!profileDoc.exists) { | ||
return null | ||
} | ||
|
||
return profileDoc.data() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import * as admin from 'firebase-admin' | ||
|
||
if (!admin.apps.length) { | ||
admin.initializeApp({ | ||
credential: admin.credential.cert({ | ||
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, | ||
clientEmail: process.env.FIREBASE_CLIENT_EMAIL, | ||
privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'), | ||
}), | ||
databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL, | ||
}) | ||
} | ||
|
||
export default admin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import Head from 'next/head' | ||
|
||
import { getProfileData } from '../../fetchData/getProfileData' | ||
|
||
export default function SSRPage({ data }) { | ||
const { username, profile } = data | ||
|
||
return ( | ||
<div className="container"> | ||
<Head> | ||
<title>Next.js w/ Firebase Client-Side</title> | ||
<link rel="icon" href="/favicon.ico" /> | ||
</Head> | ||
|
||
<main> | ||
<h1 className="title">Next.js w/ Firebase Server-Side</h1> | ||
<h2>{username}</h2> | ||
<p>{profile.message}</p> | ||
</main> | ||
</div> | ||
) | ||
} | ||
|
||
export const getServerSideProps = async ({ params }) => { | ||
const { username } = params | ||
const profile = await getProfileData(username) | ||
if (!profile) { | ||
return { notFound: true } | ||
} | ||
return { props: { data: { username, profile } } } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// Environment variables required to connect the app with your Neo4j database | ||
NEO4J_URI= | ||
NEO4J_USER= | ||
NEO4J_PASSWORD= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# next.js | ||
/.next/ | ||
/out/ | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
|
||
# debug | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# local env files | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Neo4j Example | ||
|
||
This is a simple set up for Next using Neo4j Database with api routes. Neo4j's Movies dataset example is used to run the example. | ||
|
||
## Deploy your own | ||
|
||
Once you have access to [the environment variables you'll need](#step-3-set-up-environment-variables), deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example): | ||
|
||
[](https://vercel.com/import/git?c=1&s=https://github.com/vercel/next.js/tree/canary/examples/with-neo4j&env=NEO4J_URI,NEO4J_USER,NEO4J_PASSWORD&envDescription=Required%20to%20connect%20the%20app%20with%20a%20Neo4j%20database&envLink=https://github.com/vercel/next.js/tree/canary/examples/with-neo4j%23step-3-set-up-environment-variables) | ||
|
||
## How to use | ||
|
||
Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example: | ||
|
||
```bash | ||
npx create-next-app --example with-neo4j with-neo4j-app | ||
# or | ||
yarn create next-app --example with-neo4j with-neo4j-app | ||
``` | ||
|
||
## Configuration | ||
|
||
### Step 1. Create a Neo4j database | ||
|
||
First, you'll need a Neo4j database. [Neo4j Desktop](https://neo4j.com/download/) and [Neo4j Online Sandbox](https://neo4j.com/sandbox/) are good and free to use options. | ||
|
||
### Step 2. Add the movie graph model to the database | ||
|
||
This example uses a database containing _Movies_, you can add it like so: | ||
|
||
```bash | ||
:play movie-graph | ||
``` | ||
|
||
Also included is a Cypher [movie sample](./movie-sample.md) query if needed. | ||
|
||
### Step 3. Set up environment variables | ||
|
||
Next, copy the `.env.local.example` file in this directory to `.env.local` (which will be ignored by Git): | ||
|
||
```bash | ||
cp .env.local.example .env.local | ||
``` | ||
|
||
Then set each variable on `.env.local` to match your database uri and credentials. | ||
|
||
## Deploy on Vercel | ||
|
||
You can deploy this app to the cloud with [Vercel](https://vercel.com?utm_source=github&utm_medium=readme&utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)). | ||
|
||
### Deploy Your Local Project | ||
|
||
To deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket and [import to Vercel](https://vercel.com/import/git?utm_source=github&utm_medium=readme&utm_campaign=next-example). | ||
|
||
**Important**: When you import your project on Vercel, make sure to click on **Environment Variables** and set them to match your `.env.local` file. | ||
|
||
### Deploy from Our Template | ||
|
||
Alternatively, you can deploy using our template by clicking on the Deploy button below. | ||
|
||
[](https://vercel.com/import/git?c=1&s=https://github.com/vercel/next.js/tree/canary/examples/with-neo4j&env=NEO4J_URI,NEO4J_USER,NEO4J_PASSWORD&envDescription=Required%20to%20connect%20the%20app%20with%20a%20Neo4j%20database&envLink=https://github.com/vercel/next.js/tree/canary/examples/with-neo4j%23step-3-set-up-environment-variables) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
export default function Footer() { | ||
return ( | ||
<footer> | ||
<a | ||
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
> | ||
Powered by <img src="/vercel.svg" alt="Vercel Logo" className="logo" /> | ||
</a> | ||
|
||
<style jsx> | ||
{` | ||
footer { | ||
width: 100%; | ||
height: 100px; | ||
border-top: 1px solid #eaeaea; | ||
display: flex; | ||
justify-content: center; | ||
align-items: center; | ||
} | ||
footer img { | ||
margin-left: 0.5rem; | ||
} | ||
footer a { | ||
display: flex; | ||
justify-content: center; | ||
align-items: center; | ||
} | ||
.logo { | ||
height: 1em; | ||
} | ||
`} | ||
</style> | ||
</footer> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
export default function Header({ title }) { | ||
return ( | ||
<header> | ||
<h1 className="title"> | ||
{title ? ( | ||
<span>{title}</span> | ||
) : ( | ||
<span> | ||
Welcome to <a href="https://nextjs.org">Next.js with Neo4j!</a> | ||
</span> | ||
)} | ||
</h1> | ||
|
||
<style jsx>{` | ||
.title a { | ||
color: #0070f3; | ||
text-decoration: none; | ||
} | ||
.title a:hover, | ||
.title a:focus, | ||
.title a:active { | ||
text-decoration: underline; | ||
} | ||
.title { | ||
font-size: 3rem; | ||
margin-bottom: 25px; | ||
} | ||
.title, | ||
.description { | ||
text-align: center; | ||
} | ||
`}</style> | ||
</header> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
export default async function fetcher(...args) { | ||
const res = await fetch(...args) | ||
return res.json() | ||
} |
Oops, something went wrong.