まぁ、こちらに書いてある通りなのですが…
- Firebaseコンソール上でプロジェクト作る
- ローカルにディレクトリ作って、ターミナルでそこへ行く
ここまでは Hosting の時と同じ
firebase init
( ) Database: Deploy Firebase Realtime Database Rules ( ) Firestore: Deploy rules and create indexes for Firestore (*) Functions: Configure and deploy Cloud Functions (*) Hosting: Configure and deploy Firebase Hosting sites ( ) Storage: Deploy Cloud Storage security rules
これの時に、Hostingに加えてFunctionsも選択する
- Javacsript or Typescript ? と聞かれる
- ESLint 使いますか ?
- なんとなくNoにする
- 足りないパーツをnpmでinstallしてよい?
- Yes
- functions/node_modules/ というフォルダが作られた。中にメチャクチャ色んなのが入っている。
- Yes
piblicフォルダの中身全部消す
$ cd public $ rm *
functions/static を作り、適当な index.html を置いておく
functions/index.js の中身書き換える
const functions = require('firebase-functions') const express = require('express') const basicAuth = require('basic-auth-connect') const app = express() app.all('/*', basicAuth(function(user, password) { return user === 'アイディ〜' && password === 'パスワ〜ド'; })); app.use(express.static(__dirname + '/static/')) exports.app = functions.https.onRequest(app)
firebase.json書き換える
{ "hosting": { "public": "public", "rewrites": [ { "source": "**", "function": "app" } ], "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } }
npm install する
$ cd functions $ npm install --save express $ npm install --save basic-auth-connect $ cd ..
firebase deploy
できた〜〜〜〜