【发布时间】:2020-12-17 13:19:35
【问题描述】:
总结
我们正在构建一个托管在 Firebase 中的应用。该应用程序是使用 react 和 next.js 构建的,next(以及应用程序)通过 Firebase Cloud Function 提供给客户端。我注意到,在我们重新部署应用程序后(通常是因为我们正在发布它的新版本),为客户端提供应用程序的功能需要花费 不可接受 的时间来为应用程序提供服务。例如,在重新部署之前,执行大约需要半秒(见图 1),而在重新部署之后,大约需要 36 秒(见图 2)。为什么会这样?
代码示例
这是负责通过 Cloud Function 为客户端提供应用程序的代码块(来自 Firebase Functions 中的 index.js):
/**
* Environmental value
* @type {boolean}
*/
var dev = process.env.NODE_ENV !== "production"
/**
* ServerApp
* @type {DevServer}
*/
var app = next({
dev: false,
conf: { distDir: `${path.relative(process.cwd(), __dirname)}/next` },
})
/**
* Get request handler
*/
var handle = app.getRequestHandler()
/**
* SSR
* @type {HttpsFunction}
*/
exports.next = functions.https.onRequest((req, res) => {
// log the page.js file that is being requested
console.log("File: " + req.originalUrl)
return app.prepare().then(() => handle(req, res))
})
技术栈
- “火力基地”:“^7.14.4”
- “firebase-admin”:“^8.12.1”
- “firebase-functions”:“^3.8.0”
- “反应”:“^16.8.6”
感谢您的帮助!
【问题讨论】:
标签: reactjs firebase google-cloud-firestore google-cloud-functions next.js