Commit 760bda46 authored by arnon kijlerdphon's avatar arnon kijlerdphon

Initial

parent 694cfac0
{
"projects": {
"default": "<your_firebase_project_id>"
}
}
......@@ -28,3 +28,5 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
nextjs/
\ No newline at end of file
This is a starter template for [Learn Next.js](https://nextjs.org/learn).
\ No newline at end of file
# Nextjs on Firebase
## แก้ไข firebase project id
ทำการแก้ไข `<your_firebase_project_id>` ใน `.firebaserc`
## ทดสอบสั่ง Deploy
```bash
npm install
npm run predeploy
npm run deploy
```
{
"hosting": {
"public": "public",
"cleanUrls": true,
"rewrites": [
{
"source": "**",
"function": "nextjs-server"
}
]
},
"functions": {
"source": ".",
"ignore": [
"firebase.json",
"firbease-debug.log",
"**/.*",
"**/node_modules/**",
"components/**",
"pages/**",
"public/**",
"readme.md"
]
}
}
module.exports = {
distDir: "nextjs",
};
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -3,13 +3,27 @@
"version": "0.1.0",
"private": true,
"scripts": {
"clean": "rimraf nextjs/",
"dev": "next dev",
"build": "next build",
"start": "next start"
"start": "next start",
"predeploy": "npm run clean && next build",
"deploy": "firebase deploy --only functions,hosting"
},
"dependencies": {
"firebase-admin": "~8.12.1",
"firebase-functions": "~3.6.2",
"next": "9.3.5",
"react": "16.13.1",
"react-dom": "16.13.1"
},
"devDependencies": {
"firebase-functions-test": "~0.2.1",
"rimraf": "~3.0.2",
"shelljs": "~0.8.4"
},
"main": "server.js",
"engines": {
"node": "10"
}
}
<!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/7.15.0/firebase-app.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/7.15.0/firebase-auth.js"></script>
<script defer src="/__/firebase/7.15.0/firebase-database.js"></script>
<script defer src="/__/firebase/7.15.0/firebase-messaging.js"></script>
<script defer src="/__/firebase/7.15.0/firebase-storage.js"></script>
<!-- initialize the SDK after all desired features are loaded -->
<script defer src="/__/firebase/init.js"></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&hellip;</p>
<script>
document.addEventListener('DOMContentLoaded', function() {
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
// // The Firebase SDK is initialized and available here!
//
// firebase.auth().onAuthStateChanged(user => { });
// firebase.database().ref('/path/to/ref').on('value', snapshot => { });
// firebase.messaging().requestPermission().then(() => { });
// firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { });
//
// // 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
try {
let app = firebase.app();
let features = ['auth', 'database', 'messaging', 'storage'].filter(feature => typeof app[feature] === 'function');
document.getElementById('load').innerHTML = `Firebase SDK loaded with ${features.join(', ')}`;
} catch (e) {
console.error(e);
document.getElementById('load').innerHTML = 'Error loading the Firebase SDK, check the console.';
}
});
</script>
</body>
</html>
const admin = require("firebase-admin");
const functions = require("firebase-functions");
const next = require("next");
const config = require("./next.config");
admin.initializeApp();
const dev = process.env.NODE_ENV !== "production";
const app = next({
dev,
// the absolute directory from the package.json file that initialises this module
// IE: the absolute path from the root of the Cloud Function
conf: config,
});
const handle = app.getRequestHandler();
const server = functions.https.onRequest((request, response) => {
// log the page.js file or resource being requested
console.log("File: " + request.originalUrl);
return app.prepare().then(() => handle(request, response));
});
exports.nextjs = { server };
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment