Firebase Hosting with dynamic cloud functions rewrites

前端 未结 3 1413
忘了有多久
忘了有多久 2020-12-05 02:57

I have an express.js based cloud functions app on firebase in a function named api. To use a custom domain, I\'m trying to use Firebase Hosting rewrites to rout

3条回答
  •  春和景丽
    2020-12-05 03:38

    You can use a single Firebase hosting rewrite rule with a complementing rewrite middleware in Express.

    1. Add a rewrite in your firebase.json file.

      {
        "source": "/api/**",
        "function": "api"
      }
      
    2. Include an app.use() middleware to rewrite the request url.

      const functions = require('firebase-functions');
      const express = require('express');
      
      const API_PREFIX = 'api';
      const app = express();
      
      // Rewrite Firebase hosting requests: /api/:path => /:path
      app.use((req, res, next) => {
          if (req.url.indexOf(`/${API_PREFIX}/`) === 0) {
              req.url = req.url.substring(API_PREFIX.length + 1);
          }
          next();
      });
      
      app.get('/users/:userId/:userData/json', (req, res) => {
          // Do App stuff here
      });
      
      exports[API_PREFIX] = functions.https.onRequest(app);
      

提交回复
热议问题