Les fonctions Firebase renvoient 404

Nov 19 2020

J'essaye de mettre en place un domaine personnalisé pour les fonctions Firebase. Domaine personnalisé déjà vérifié et fonctionne bien. Mes fonctions Firebase s'exécutent sous us-central1:

voici mon code pour la loginfonction:

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);

rien d'extraordinaire ...

Ainsi, lorsque j'utilise l'URL de la capture d'écran dans Postman - cela fonctionne bien. Mais je veux utiliser un domaine personnalisé comme suivant:

https://mydomai.com/api/login

Voici ma firebase.jsonsection d'hébergement:

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

Mais lorsque j'essaie d'atteindre loginavec un domaine personnalisé, cela me renvoie 404sans aucun message d'erreur précieux:

Des idées?

Réponses

2 MichaelBleigh Nov 19 2020 at 21:12

Une sourceréécriture n'est pas supprimée de l'URL lors de l'appel à la fonction, vous souhaiterez donc probablement passer appLogin.post("/", ...)à appLogin.post("/api/login/", ...).