-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
297 additions
and
3 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"projects": { | ||
"default": "poc-appointments-with-vonage-a" | ||
} | ||
} |
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,36 @@ | ||
{ | ||
"firestore": { | ||
"rules": "firestore.rules", | ||
"indexes": "firestore.indexes.json" | ||
}, | ||
"functions": [ | ||
{ | ||
"source": "functions", | ||
"codebase": "default", | ||
"ignore": [ | ||
"node_modules", | ||
".git", | ||
"firebase-debug.log", | ||
"firebase-debug.*.log" | ||
], | ||
"predeploy": [ | ||
"npm --prefix \"$RESOURCE_DIR\" run lint", | ||
"npm --prefix \"$RESOURCE_DIR\" run build" | ||
] | ||
} | ||
], | ||
"hosting": { | ||
"public": "public", | ||
"ignore": [ | ||
"firebase.json", | ||
"**/.*", | ||
"**/node_modules/**" | ||
], | ||
"rewrites": [ | ||
{ | ||
"source": "**", | ||
"destination": "/index.html" | ||
} | ||
] | ||
} | ||
} |
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 @@ | ||
{ | ||
"indexes": [], | ||
"fieldOverrides": [] | ||
} |
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,19 @@ | ||
rules_version = '2'; | ||
|
||
service cloud.firestore { | ||
match /databases/{database}/documents { | ||
|
||
// This rule allows anyone with your Firestore database reference to view, edit, | ||
// and delete all data in your Firestore database. It is useful for getting | ||
// started, but it is configured to expire after 30 days because it | ||
// leaves your app open to attackers. At that time, all client | ||
// requests to your Firestore database will be denied. | ||
// | ||
// Make sure to write security rules for your app before that time, or else | ||
// all client requests to your Firestore database will be denied until you Update | ||
// your rules | ||
match /{document=**} { | ||
allow read, write: if request.time < timestamp.date(2023, 8, 24); | ||
} | ||
} | ||
} |
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,32 @@ | ||
module.exports = { | ||
root: true, | ||
env: { | ||
es6: true, | ||
node: true, | ||
}, | ||
extends: [ | ||
"eslint:recommended", | ||
"plugin:import/errors", | ||
"plugin:import/warnings", | ||
"plugin:import/typescript", | ||
"google", | ||
"plugin:@typescript-eslint/recommended", | ||
], | ||
parser: "@typescript-eslint/parser", | ||
parserOptions: { | ||
project: ["tsconfig.json", "tsconfig.dev.json"], | ||
sourceType: "module", | ||
}, | ||
ignorePatterns: [ | ||
"/lib/**/*", // Ignore built files. | ||
], | ||
plugins: [ | ||
"@typescript-eslint", | ||
"import", | ||
], | ||
rules: { | ||
"quotes": ["error", "double"], | ||
"import/no-unresolved": 0, | ||
"indent": ["error", 2], | ||
}, | ||
}; |
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,9 @@ | ||
# Compiled JavaScript files | ||
lib/**/*.js | ||
lib/**/*.js.map | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# Node.js dependency directory | ||
node_modules/ |
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 @@ | ||
{ | ||
"name": "functions", | ||
"scripts": { | ||
"lint": "eslint --ext .js,.ts .", | ||
"build": "tsc", | ||
"build:watch": "tsc --watch", | ||
"serve": "npm run build && firebase emulators:start --only functions", | ||
"shell": "npm run build && firebase functions:shell", | ||
"start": "npm run shell", | ||
"deploy": "firebase deploy --only functions", | ||
"logs": "firebase functions:log" | ||
}, | ||
"engines": { | ||
"node": "18" | ||
}, | ||
"main": "lib/index.js", | ||
"dependencies": { | ||
"firebase-admin": "^11.8.0", | ||
"firebase-functions": "^4.3.1" | ||
}, | ||
"devDependencies": { | ||
"@typescript-eslint/eslint-plugin": "^5.12.0", | ||
"@typescript-eslint/parser": "^5.12.0", | ||
"eslint": "^8.9.0", | ||
"eslint-config-google": "^0.14.0", | ||
"eslint-plugin-import": "^2.25.4", | ||
"firebase-functions-test": "^3.1.0", | ||
"typescript": "^4.9.0" | ||
}, | ||
"private": true | ||
} |
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,19 @@ | ||
/** | ||
* Import function triggers from their respective submodules: | ||
* | ||
* import {onCall} from "firebase-functions/v2/https"; | ||
* import {onDocumentWritten} from "firebase-functions/v2/firestore"; | ||
* | ||
* See a full list of supported triggers at https://firebase.google.com/docs/functions | ||
*/ | ||
|
||
import {onRequest} from "firebase-functions/v2/https"; | ||
import * as logger from "firebase-functions/logger"; | ||
|
||
// Start writing functions | ||
// https://firebase.google.com/docs/functions/typescript | ||
|
||
// export const helloWorld = onRequest((request, response) => { | ||
// logger.info("Hello logs!", {structuredData: true}); | ||
// response.send("Hello from Firebase!"); | ||
// }); |
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,5 @@ | ||
{ | ||
"include": [ | ||
".eslintrc.js" | ||
] | ||
} |
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,15 @@ | ||
{ | ||
"compilerOptions": { | ||
"module": "commonjs", | ||
"noImplicitReturns": true, | ||
"noUnusedLocals": true, | ||
"outDir": "lib", | ||
"sourceMap": true, | ||
"strict": true, | ||
"target": "es2017" | ||
}, | ||
"compileOnSave": true, | ||
"include": [ | ||
"src" | ||
] | ||
} |
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,89 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<title>Welcome to Firebase Hosting</title> | ||
|
||
<!-- update the version number as needed --> | ||
<script defer src="/__/firebase/10.1.0/firebase-app-compat.js"></script> | ||
<!-- include only the Firebase features as you need --> | ||
<script defer src="/__/firebase/10.1.0/firebase-auth-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-database-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-firestore-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-functions-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-messaging-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-storage-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-analytics-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-remote-config-compat.js"></script> | ||
<script defer src="/__/firebase/10.1.0/firebase-performance-compat.js"></script> | ||
<!-- | ||
initialize the SDK after all desired features are loaded, set useEmulator to false | ||
to avoid connecting the SDK to running emulators. | ||
--> | ||
<script defer src="/__/firebase/init.js?useEmulator=true"></script> | ||
|
||
<style media="screen"> | ||
body { background: #ECEFF1; color: rgba(0,0,0,0.87); font-family: Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; } | ||
#message { background: white; max-width: 360px; margin: 100px auto 16px; padding: 32px 24px; border-radius: 3px; } | ||
#message h2 { color: #ffa100; font-weight: bold; font-size: 16px; margin: 0 0 8px; } | ||
#message h1 { font-size: 22px; font-weight: 300; color: rgba(0,0,0,0.6); margin: 0 0 16px;} | ||
#message p { line-height: 140%; margin: 16px 0 24px; font-size: 14px; } | ||
#message a { display: block; text-align: center; background: #039be5; text-transform: uppercase; text-decoration: none; color: white; padding: 16px; border-radius: 4px; } | ||
#message, #message a { box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); } | ||
#load { color: rgba(0,0,0,0.4); text-align: center; font-size: 13px; } | ||
@media (max-width: 600px) { | ||
body, #message { margin-top: 0; background: white; box-shadow: none; } | ||
body { border-top: 16px solid #ffa100; } | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<div id="message"> | ||
<h2>Welcome</h2> | ||
<h1>Firebase Hosting Setup Complete</h1> | ||
<p>You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!</p> | ||
<a target="_blank" href="https://firebase.google.com/docs/hosting/">Open Hosting Documentation</a> | ||
</div> | ||
<p id="load">Firebase SDK Loading…</p> | ||
|
||
<script> | ||
document.addEventListener('DOMContentLoaded', function() { | ||
const loadEl = document.querySelector('#load'); | ||
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 | ||
// // The Firebase SDK is initialized and available here! | ||
// | ||
// firebase.auth().onAuthStateChanged(user => { }); | ||
// firebase.database().ref('/path/to/ref').on('value', snapshot => { }); | ||
// firebase.firestore().doc('/foo/bar').get().then(() => { }); | ||
// firebase.functions().httpsCallable('yourFunction')().then(() => { }); | ||
// firebase.messaging().requestPermission().then(() => { }); | ||
// firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { }); | ||
// firebase.analytics(); // call to activate | ||
// firebase.analytics().logEvent('tutorial_completed'); | ||
// firebase.performance(); // call to activate | ||
// | ||
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥 | ||
|
||
try { | ||
let app = firebase.app(); | ||
let features = [ | ||
'auth', | ||
'database', | ||
'firestore', | ||
'functions', | ||
'messaging', | ||
'storage', | ||
'analytics', | ||
'remoteConfig', | ||
'performance', | ||
].filter(feature => typeof app[feature] === 'function'); | ||
loadEl.textContent = `Firebase SDK loaded with ${features.join(', ')}`; | ||
} catch (e) { | ||
console.error(e); | ||
loadEl.textContent = 'Error loading the Firebase SDK, check the console.'; | ||
} | ||
}); | ||
</script> | ||
</body> | ||
</html> |