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
{ | |
"projects": { | |
"default": "this will be the name you gave to the firebase project you linked" | |
} | |
} |
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
{ | |
"hosting": { | |
"public": "src/public" | |
}, | |
"functions": { | |
"source": "src/functions" | |
} | |
} |
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
# src/app/.gitignore | |
.next |
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
const functions = require("firebase-functions") | |
const cors = require("cors") | |
const express = require("express") | |
/* Express with CORS & automatic trailing '/' solution */ | |
const app3 = express() | |
app3.use(cors({ origin: true })) | |
app3.get("*", (request, response) => { | |
response.send( | |
"Hello from Express on Firebase with CORS! No trailing '/' required!" |
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
const functions = require("firebase-functions") | |
const cors = require("cors") | |
const express = require("express") | |
/* Express with CORS */ | |
const app2 = express() | |
app2.use(cors({ origin: true })) | |
app2.get("*", (request, response) => { | |
response.send("Hello from Express on Firebase with CORS!") | |
}) |
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
const authors = [ | |
{ id: 1, firstName: "Tom", lastName: "Coleman" }, | |
{ id: 2, firstName: "Sashko", lastName: "Stubailo" } | |
] | |
const posts = [ | |
{ id: 1, authorId: 1, title: "Introduction to GraphQL", votes: 2 }, | |
{ id: 2, authorId: 2, title: "GraphQL Rocks", votes: 3 }, | |
{ id: 3, authorId: 2, title: "Advanced GraphQL", votes: 1 } | |
] |
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
import { makeExecutableSchema } from "graphql-tools" | |
import resolvers from "./resolvers" | |
const schema = ` | |
type Author { | |
id: Int! # the ! means that every author object _must_ have an id | |
firstName: String | |
lastName: String | |
posts: [Post] # the list of Posts by this author |
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
import bodyParser from "body-parser" | |
import express from "express" | |
import { graphqlExpress, graphiqlExpress } from "graphql-server-express" | |
import schema from "./data/schema" | |
import { printSchema } from "graphql/utilities/schemaPrinter" | |
const setupGraphQLServer = () => { | |
// setup server | |
const graphQLServer = express() |
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
{ | |
"name": "functions", | |
"description": "Cloud Functions for Firebase", | |
"dependencies": { | |
"apollo-server-express": "^1.1.3", | |
"body-parser": "^1.18.2", | |
"express": "^4.16.1", | |
"firebase-admin": "^5.4.1", | |
"firebase-functions": "^0.7.0", | |
"graphql": "^0.11.7", |
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
import { https } from "firebase-functions" | |
import setupGraphQLServer from "./graphql/server" | |
/* CF for Firebase with graphql-server-express */ | |
const graphQLServer = setupGraphQLServer() | |
// https://us-central1-<project-name>.cloudfunctions.net/api | |
export const api = https.onRequest(graphQLServer) |