我是服务器开发的新手,正在尝试使我的Cloud Firebase功能正常工作。当条纹webhook触发时,我在Firebase日志上收到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
}));
答案 0 :(得分:2)
这似乎不是将cors模块与Cloud Functions for Firebase一起使用的正确方法。尝试以下方法:
exports.stripeCreateOathResponseToken =
functions.https.onRequest((req, res) => {
return cors(req, res, () => {
// put your function code here
});
});
从official sample铺起。