Функции Firebase возвращают 404

#firebase #google-cloud-functions #firebase-hosting

# #firebase #google-cloud-функции #firebase-хостинг

Вопрос:

Я пытаюсь настроить пользовательский домен для функций firebase. Пользовательский домен уже проверен и работает нормально. Мои функции firebase выполняются под us-central1 :

введите описание изображения здесь

вот мой код для login функции:

 const functions = require("firebase-functions");
const express = require(`express`);
const cors = require(`cors`);
const admin = require(`firebase-admin`);
admin.initializeApp();

const firestore = admin.firestore();
const appLogin = express();
appLogin.use(cors({origin:true}));

appLogin.post("/", async(req:Request, res:Response)=>{
    functions.logger.log(`received`);
    const body = req.body;
    functions.logger.log(body);
    const result = await firestore.collection(DbCollections.USER).add(body);
    return res.status(201).send(JSON.stringify({"user_id":result.id}));
}); 


exports.login = functions.https.onRequest(appLogin);
 

ничего особенного…

Итак, когда я использую URL из скриншота в postman — он работает нормально. Но я хочу использовать пользовательский домен, как следующий:

 https://mydomai.com/api/login
 

Вот мой firebase.json раздел хостинга:

   "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "/api/login",
        "function": "login"
      }
    ]
  }
 

Но когда я пытаюсь связаться login с пользовательским доменом — он возвращает меня 404 без какого-либо ценного сообщения об ошибке:
введите описание изображения здесь

введите описание изображения здесь

Есть идеи?

Ответ №1:

Значение source перезаписи не удаляется из URL-адреса при вызове функции, поэтому вы, вероятно, захотите изменить appLogin.post("/", ...) его на appLogin.post("/api/login/", ...) .

Комментарии:

1. Спасибо, действительно ценю это!