Необработанный отказ от Google Cloud Function - PullRequest
1 голос
/ 17 марта 2019

Я использую облачную функцию Google для обработки данных.И в одной из моих функций я делаю вложенные.

Проблема в том, что все работает, но я получаю сообщение об ошибке «Необработанный отказ» в журнале функций.

Я не знаю, что, я делаю ошибку.Это мой код функции облака:

const admin = require('firebase-admin');
const rp = require('request-promise');

module.exports = function(req, res) {

const phone = String(req.body.phone).replace(/[^\d]/g, '');
const amount = parseInt(req.body.amount);
const couponCodeName = (req.body.couponCodeName);
const couponUsage = parseInt(req.body.couponUsage);
const usersCouponUsage = parseInt(req.body.usersCouponUsage);
const finalAddress = (req.body.finalAddress);
const planName = (req.body.planName);
const saveThisAddress = (req.body.saveThisAddress);
const orderNumber = (req.body.orderNumber);

const options = {
    method: 'POST',
    uri:`https://....`,
    body: {
        amount
    },
    json: true
};

return admin.auth().getUser(phone)
        .then(userRecord => {
            return rp(options)
        })
        .then((orderResponse) => {
            return admin.database().ref('trans/'+ phone)
                .push({ amount: orderResponse.amount })
            })
        .then(() => {
            return admin.database().ref('ordersOfUsers/'+ phone)
                .push({ amount })
        })
        .then(() => { 
            return saveThisAddress === true ? 
                admin.database().ref('SavedAddress/'+phone)
                    .push({address: finalAddress}) : null
        })
        .then(() => {
            return admin.database().ref('delivery/'+phone+'/'+orderNumber)
                .set({ plan: planName === "" ? "Single Day Plan" : planName, delivered: false}, () => {
                    res.status(200).send({ success:true })
                })
        })
        .then(() => {
            return couponCodeName === "" ? null : 
                admin.database().ref(`couponCodes/${couponCodeName}`)
                    .update({couponUsage: couponUsage + 1 })
        })
        .then(() => {
            return usersCouponUsage === "" ? null : 
                admin.database().ref(`couponUsage/${phone}`)
                    .update({ [couponCodeName]: usersCouponUsage + 1 })
        })
        .catch((err) => {
            res.status(422).send({ error: err })
        })    
    .catch((err) => {
       res.status(422).send({error: err });
    });
}

1 Ответ

0 голосов
/ 17 марта 2019

В вашем коде уже есть оператор return внутри обещания (кроме блока catch).Так что, возможно, удалив возврат из return admin.auth (). GetUser (phone) может исправить вашу ошибку.

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