首页 > 解决方案 > 尽管重写,firebase 托管未传递给 firebase 功能

问题描述

完整回购:https ://github.com/jmsherry/firebase-full

firebase.json

{
  "hosting": {
    "predeploy": [
      "npm --prefix webapp run build"
    ],
    "public": "webapp/build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/server-time",
        "function": "serverTime"
      },
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  }
}

我正在尝试将我的功能与托管一起使用。该功能可用(网址:https ://europe-west2-full-firebase-efc5a.cloudfunctions.net/serverTime ),但服务器时间功能的重写在本地工作,但在托管它的 404s 和重定向的 firebase 上运行时到主页(网址:https ://full-firebase-efc5a.firebaseapp.com/server-time )

就像它没有被发送到firebase端的函数一样!

任何人都可以解释一下吗?

标签: firebasegoogle-cloud-functionsfirebase-hosting

解决方案


看起来您已将功能部署到区域 europe-west2。不幸的是,这根本不适用于生产环境中的 Firebase 托管,因为它仅支持用于 Cloud Functions 的 us-central1。从文档中的注释:

重要提示:Firebase 托管仅在 us-central1 中支持 Cloud Functions。

考虑改用Cloud Run。它的工作量更大,但您将能够部署到任何受支持的区域,并且它将与 Firebase 托管一起使用。


推荐阅读