【发布时间】:2020-09-07 23:52:44
【问题描述】:
在我的客户端javascript中,如果用户被授权(使用firebase auth),我会请求私有内容,如下所示:
firebase.auth().onAuthStateChanged(user => {
if (!user) {
ui.start("#firebaseui-auth-container", uiConfig);
}
if (user) {
import("/private.js").then(module => {
console.log(module.default);
});
}
});
从公共 Firebase 托管 URL 为所有用户提供 index.html,但只有当用户获得授权时,他们才会请求私有内容。我的firebase.json 重定向来处理这个:
"rewrites": [
{
"source": "**",
"function": "app"
}
]
我正在努力建立一个基于 firebase 函数的快速后端来为 javascript 提供服务。 (我还没有添加身份验证检查,因为我想让它首先为 js 服务)。
我的 firebase 函数如下所示:
const fs = require("fs");
const functions = require("firebase-functions");
const express = require("express");
const app = express();
app.get("/private.js", (req, res) => {
fs.readFile("private.js", "utf8", function (err, data) {
if (err) throw err;
res.send(data)
});
});
exports.app = functions.https.onRequest(app);
但是,当用户获得授权并且客户端尝试动态导入 private.js 时,我收到以下错误:Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec。如何正确设置 MIME 类型以提供 js 文件?
【问题讨论】:
标签: javascript node.js firebase express firebase-authentication