如何使用云功能将数据保存到firestore?

时间:2018-05-18 00:00:36

标签: google-cloud-firestore google-cloud-functions

我看到了其他一些答案,我尝试了其中一些不成功。

在我的情况下,我创建了一个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。

enter image description here

0 个答案:

没有答案