2
votes

corps de demande de poste de fonction cloud de firebase

Je fais une requête http à partir d'une forme angulaire comme celle-ci:

const functions = require('firebase-functions');
const cors = require('cors')({ origin: true });

exports.test = functions.https.onRequest((req, res) => {

    cors(req, res, () => {
        const data = req.body;
        res.send(`Hello from Firebase! ${data}`);
    });

})

Et j'ai une fonction cloud simple:

  this.http.post(this.endPoint, formData, { responseType: 'text' }).subscribe(
    res => {
      console.log(res);
    }
  )

Cependant, le req.body ne fonctionne pas et j'obtiens cette réponse:

Bonjour de Firebase! [objet Objet]

Y a-t-il une idée de pourquoi cela se produit?


0 commentaires

3 Réponses :


3
votes

Si vous essayez d'imprimer la valeur req.body , vous devez d'abord la convertir d'un objet JavaScript en une chaîne:

res.send(`Hello from Firebase! ${JSON.stringify(data)}`);


0 commentaires

2
votes

La réponse de Frank est probablement plus proche de ce que vous recherchez.

Sinon, si vous souhaitez simplement imprimer des propriétés spécifiques:

Vous utilisez le modèle littéral pour injecter le req.body dans votre chaîne. Puisque req.body (ou data dans ce cas) est un objet, vous devrez en extraire la ou les valeurs que vous souhaitez afficher comme req.body.prop .

Cet exemple du démarrage rapide de Firebase montre l'extraction de la propriété du corps de la requête.


0 commentaires

0
votes

J'ai trouvé le problème: j'ai ajouté 'Content-Type': 'multipart/form-data' dans les en-têtes lorsque je poste la demande à partir de mon formulaire angulaire.


0 commentaires