首页 > 解决方案 > 将自定义 URL 重写添加到 Firebase Cloud Function for REST API

问题描述

我正在尝试通过自定义 URL 使我的 Firebase 云功能在下面可用:

https://example.com/myfancyredirected/orwhatever/

我编写了以下 Firebase Cloud Function 来将数据写入我的 Cloud Firestore(我的 index.js 文件的摘录):

const functions = require('firebase-functions');
const admin = require('firebase-admin');

var serviceAccount = require("./permissions.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "myDBlocation"
});

const express = require('express');
const app = express();
const db = admin.firestore();

const cors = require('cors');
app.use( cors( {origin:true}));


//Create
let autoID = admin.database().ref().push().key;

app.post((req, res) => {
  
  (async() => {
   try
   {
      await db.collection('mycustomDBlocation').doc()
      .create({
        name: req.body.name,
        description: req.body.description
      })

      return res.status(200).send('Received Thanks!');
   } catch (error) {
      console.log(error);
      return res.status(500).send(error);
   }
  })();
  
});



exports.app = functions.https.onRequest(app);

我还在我的 firebase.json 文件中附加了以下内容,以将位置重新写入自定义域:

    "rewrites": [ {
      "source": "/myfancyredirected/orwhatever/",
      "function": "app"
    } ]

该功能在标准 Firebase URL 上运行良好,但在自定义 URL 上运行良好,否则自定义 URL 可以正常运行并通过 Firebase 托管网站。

任何关于我哪里出错的帮助将不胜感激?

标签: node.jsfirebaseexpressgoogle-cloud-functionsfirebase-hosting

解决方案


推荐阅读