Firebase 创建全面重定向&;子函数重定向

Firebase 创建全面重定向&;子函数重定向,firebase,firebase-hosting,Firebase,Firebase Hosting,我的域似乎重定向到index.html和所有子链接,一切正常。 问题是它不会重定向到api规则“source”:“/api/**” 我已经使用整个firebase url(没有自定义域)手动检查了API,它可以正常工作 我如何让domain.com/somelink和domain.com/api/somelink在联合中工作 这是配置 firebase.json { "database": { "rules": "database.rules.json" }, "hostin

我的域似乎重定向到index.html和所有子链接,一切正常。
问题是它不会重定向到api规则
“source”:“/api/**”

我已经使用整个firebase url(没有自定义域)手动检查了API,它可以正常工作

我如何让domain.com/somelink和domain.com/api/somelink在联合中工作

这是配置

firebase.json

{
  "database": {
    "rules": "database.rules.json"
  },
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
  "storage": {
    "rules": "storage.rules"
  }
}

如此处所述
https://stackoverflow.com/questions/44959652/firebase-hosting-with-dynamic-cloud-functions-rewrites/45224176#45224176

创建承载所有其他顶级功能的主应用程序

const funtions = require('firebase-functions');
const express = require('express');
const app = express();

app.get('/users/:userId/:userData/json', (req, res) => {
    // Do App stuff here
}
// A couple more app.get in the same format

// Create "main" function to host all other top-level functions
const main = express();
main.use('/api', app);

exports.main = functions.https.onRequest(main);
firebase.json

{
    "source": "/api/**", // "**" ensures we include paths such as "/api/users/:userId"
    "function": "main"
}
使用主钩

const hooks = express();
main.use('/hooks/, hooks);

尝试将api路由放在常规路由之后。我想最后一条匹配路线赢了。已经试过了,没用。你知道每次我们想要更新规则时是否需要执行
firebase部署
吗?我在这里找到了一个修复方法:回答这里: