我看到了其他一些答案,我尝试了其中一些不成功。
在我的情况下,我创建了一个iOS应用程序并集成了Stripe付款方式,因此它可以在云端功能中实现我的javascript功能。我实际上能够看到我在条带帐户中实现的付款,但我无法将其保存到我们的火库数据库中。
这是我在Google方面的设置:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const express = require('express');
const cors = require('cors')({origin: true});
const app = express();
const stripe = require('stripe')(functions.config().stripe.token);
//I've preset this data to firebase functions middleware
function charge(req, res) {
const body = (req.body);
const userId = body.userId;
const token = body.token;
const amount = body.amount;
const currency = body.currency;
// Charge card
stripe.charges.create({
amount,
currency,
description: 'Firebase Example',
source: token,
}).then(charge => {
send(res, 200, {
// I WANNA RECORD DATA INTO MY DATABASE HERE!!
message: 'Success',
charge,
});
}).catch(err => {
console.log(err);
send(res, 500, {
error: err.message,
});
});
}
function send(res, code, body) {
res.send({
statusCode: code,
body: JSON.stringify(body),
});
}
app.use(cors);
app.post('/', (req, res) => {
// Catch any unexpected errors to prevent crashing
try {
charge(req, res);
} catch(e) {
console.log(e);
send(res, 500, {
error: `The server received an unexpected error. Please
try again and contact the site admin if the error persists.`,
});
}
});
exports.charge = functions.https.onRequest(app);
这是我们想要保存的数据库设置,如下所示: - 付款> userId ...我将保存此userId执行的每笔交易:“token”,“currency”和“amount”。
注意:我已经在我的函数中拥有了所有这些值,并且还有userId。