Возврат значений из облачных функций для Firebase в приложение iOS - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь использовать следующую облачную функцию для Firebase для связи между Stripe и моим iOS-приложением.Однако, хотя console.log(customer) распечатывает действительный объект JSON клиента, мое приложение для iOS получает nil в результате.Я возвращаю это неправильно?

exports.regCustomer = functions.https.onCall((data,context) => {
    const email = data.email;

    return stripe.customers.create({
        email: email,
    }, function(err, customer) {
        if (err) {
            console.log(err);
            throw new functions.https.HttpsError('stripe-error', err);
        } else {
            console.log("customer successfully created");
            console.log(customer);
            return customer;
        }
    });                                               
});

1 Ответ

0 голосов
/ 27 сентября 2018

Вам следует использовать режим обещаний библиотеки Stripe Node.js, а не режим обратного вызова, см. https://github.com/stripe/stripe-node/wiki/Promises

Затем, изменение кода в этих строках должно помочь:

exports.regCustomer = functions.https.onCall((data, context) => {
    const email = data.email;

    return stripe.customers.create({
        email: email
    })
    .then(function(customer) {
        console.log("customer successfully created");
        console.log(customer);
        return {customer: customer};

    }, function(err) {
        throw new functions.https.HttpsError('stripe-error', err);
    });

});
...