Firebase 托管找不到 Express 端点

Firebase Hosting can't find Express Endpoints

我已经在 Firebase 上设置了托管并按照 Google 提供的文档配置了我的 Node.js Express 应用程序。包括正确的文件夹结构和命令行指令以初始化 firebase 和 firebase 函数。

文件夹结构:

Project
-- functions
   -- node_modules
   -- index.js
   -- package.json
-- public
   -- index.html
   -- 404.html
.firebaserc
firebase.json

我已通过以下代码将 Express 应用程序添加到 firebase 函数 http 请求中:

// Set up endpoint
app.get('/api', (req, res) => {
    res.json({
        message: 'Welcome to the Line Prophet API.  Good luck.'
    })
});

/**
 * Firebase cloud functions 
 */
exports.app = functions.https.onRequest(app);

我的 Firebase.json 文件设置为将所有请求定向到应用程序目标:

{
  "hosting": {
    "public": "public",
    "rewrites": [
      {
        "source": "**",
        "destination": "app"
      }
    ]
  }
}

一旦我从我的父目录 运行 firebase deploy 一切正常,它说应用程序已部署:

但是之后我导航到 https://line-prophet.web.app/api 并且收到 404 页面未找到错误。

我已经尝试使用 firebase serve 在本地 运行 这个,我遇到了同样的问题。这是短暂的工作,这就是为什么我觉得好像一切都设置正确,但是在再次部署之后它已经永远坏了。任何提示表示赞赏。谢谢!

最新的部署说只有 4 个文件部署到 Firebase,这看起来非常少。我检查了“功能”选项卡,我确实看到 "app" 在那里并且源代码是正确的。

感谢@LawrenceCherone 将 firebase.json 文件更改为:

"rewrites": [
      {
        "source": "**",
        "function": "app"
      }
    ]

解决了我的问题。由于在线文档,我使用的是目标而不是函数,但是将所有请求定向到您设置的用于处理 http 请求的函数更有意义。