Stripe Firebase Cloud Функции - res.send () не является функцией - PullRequest
0 голосов
/ 03 марта 2020

Я новичок в разработке серверов и пытаюсь заставить мою функцию облачной пожарной базы работать. Я получаю res.send() is not a function на моем журнале регистрации, когда мой полосатый веб-крюк срабатывает, и я не совсем уверен, почему. Я почти уверен, что что-то упустил. Единственный вывод, который я могу сделать - это то, что я не использую App из const app = express();, но вижу, что он используется в другом месте.

Любая и вся помощь / направление приветствуется

Я получаю следующее:

res.send() is not a function

res.end() is not a function

res.json() is not a function

Все, что связано с res, похоже, является проблемой.

Вот мой код:

const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);
const Chatkit = require('@pusher/chatkit-server');
const stripeToken = require('stripe')(functions.config().stripe.token);
const stripeWebhooks = require('stripe')(functions.config().keys.webhooks);
const express = require('express');
const cors = require('cors');
const endpointSecret = functions.config().keys.signing;
const request = require('request-promise');
const app = express();

app.use(cors({ origin: true }));

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

    const endpointSecret = "whsec_XXXXXXXXXXXXXXXXXXX";

    // Get the signature from the request header
    let sig = req.headers["stripe-signature"];

    let rawbody = req.rawBody;
    // res.send("testing res.send()"); // doesnt work. cant use res.send() here

    console.log("rawbody: " + rawbody);
    console.log("request.body: " + req.body);
    console.log("request.query.code: " + req.query.code);
    console.log("request.query.body: " + req.query.body);
    console.log("request.query.state: " + req.query.state);
    // console.log("res.body: " + res.json({received: true}));
    stripeWebhooks.webhooks.constructEvent(req.rawBody, sig, endpointSecret);
    res.end("testing res.end()"); // doesnt work. cant use res.end() here
}));



1 Ответ

2 голосов
/ 03 марта 2020

Это не похоже на правильный способ использования модуля cors с Cloud Functions for Firebase. Попробуйте вместо этого:

exports.stripeCreateOathResponseToken =
functions.https.onRequest((req, res) => {
    return cors(req, res, () => {
        // put your function code here
    });
});

Извлечено из официального образца .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...