gpt4 book ai didi

javascript - Firebase Cloud功能使用paypal sdk后无法写入文档

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:58 25 4
gpt4 key购买 nike

调用 get order paypal 函数后,此函数出现问题。它成功获取订单详细信息并将其写入控制台。然而在那之后,它应该写入 Firestore 文档,但它并没有这样做。功能日志上没有错误,只是它启动并执行了功能。如果我删除了 paypal 功能,它就可以写入文档,这样我就知道该代码有效。我只是不知道我在搞砸什么。任何帮助将不胜感激谢谢。

const functions = require('firebase-functions');
// Import and initialize the Firebase Admin SDK.
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const paypal = require('paypal-rest-sdk');

paypal => configured here


exports.createRecord = functions.firestore.document('messages/{messageId}').onCreate(
async (snapshot) => {


var orderId = "3L62701538009611M";

paypal.order.get(orderId, function (error, order) {
if (error) {
console.log(error);
return false;

} else {
console.log("Get Order Response",JSON.stringify(order));

var userObject = {
displayName : 'BarryAllen',
email : 'FMA@Speedster.com',
};

return admin.firestore().doc('paid/docnametest').set(userObject)

}

});


});

功能日志

5:25:50.643 PM
checkWork
Function execution took 3559 ms, finished with status: 'ok'
5:25:47.516 PM
createRecord
Function execution took 236 ms, finished with status: 'ok'
5:25:47.281 PM
createRecord
Function execution started
5:25:47.085 PM
checkWork
Function execution started

最佳答案

您需要返回一个在所有异步工作完成时解析的 promise 。现在,该函数没有返回任何内容,这意味着它将立即终止并且对 paypal 的调用将关闭。回调函数中的 return 语句不会向顶级函数返回 promise 。

您需要做的是“promisify”调用 paypal,因为他们目前不支持 promises(除非您想使用他们的 2.0 beta)。

如果您 promise ,它将看起来像这样,您可能希望根据您真正想要对来自 paypal 的响应执行的操作进行更改:

const p = new Promise((resolve, reject)) => {
paypal.order.get(orderId, function (error, order) {
if (error) {
console.log(error);
reject(error);
} else {
console.log("Get Order Response",JSON.stringify(order));
resolve(order);
}
}
})
return p.then(order => {
var userObject = {
displayName : 'BarryAllen',
email : 'FMA@Speedster.com',
};

return admin.firestore().doc('paid/docnametest').set(userObject).then
})

关于javascript - Firebase Cloud功能使用paypal sdk后无法写入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58345155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com