【今日やったこと】
express-basic-authをインストール(最初はcd functionsにしてからやったけど、インストールできてなかったっぽい。ルートディレクトリでインストールしたら両方に入ったみたい?)
expressをインストール?したのか不明だけど、node_modulesに入っていた。もし入ってなかったらインストールすべし。
firebase.jsonを以下のように書き換え。といっても、destination: “index.html”を
function: “app” に変更しただけ
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
**"function": "app"**
}
]
}
functions > src > index.tsに以下追加
import * as express from "express";
import * as basicAuth from "express-basic-auth";
import * as path from "path";
// basic
// const app = express();
// app.all("/*", basicAuth({
// authorizer: (user: string, password: string) => {
// return user === "username" && password === "password";
// },
// }));
// app.use(express.static(__dirname + "/static/"));
// exports.app = functions.https.onRequest(app);
const app = express();
app.use(
basicAuth({
challenge: true,
users: {
admin: "admin",
},
})
);
app.use(express.static(path.join(__dirname, "../", "src")));
app.use((req, res) => {
res.sendFile(path.join(__dirname, "../", "build/index.html"));
});
exports.app = functions.https.onRequest(app);
buildの中に入っていたもの全てを、functions > lib > build に移動 ※buildフォルダは新規作成
ターミナルで firebase deploy
デプロイはされるが、403エラーになる。buildファイル一式を元に戻せばエラーは解消されるが、パスワード入力画面は表示されず、チャットボットアプリが表示される。