【发布时间】:2018-10-30 01:56:34
【问题描述】:
我在我的 firebase 后端 Nodejs 代码中收到此错误“函数返回未定义、预期的承诺或值” 这是正在运行的代码;
exports.payOnDelivery = functions.database.ref('/CompletedJobs/{id}').onCreate((snapshot, context) => {
let chargeID = snapshot.child("chargeID/id").val();
let amount = +(snapshot.child("chargeID/amount").val());
let amountAfterCut = amount*0.75;
let emailHash = snapshot.child("jobTaker").val();
if (chargeID == null || amount == null || emailHash == null){
console.log("Could not parse data");
return 1;
}
console.log("This is Before Observe");
console.log('Blah blah:', chargeID, amount, emailHash);
admin.database().ref(`Couriers/${emailHash}`).once('value').then(function(userSnapshot){
const accountID = userSnapshot.child("stripeAccount/id");
console.log("AcctID:",accountID);
stripe.transfers.create({
amount: amountAfterCut,
currency: "cad",
source_transaction: chargeID,
destination: accountID
}), function(err, transfer){
if (err){
console.log(err);
return 1;
}
else{
console.log("Transfer made",transfer);
return 0;
}
}
}, function(error){
console.error(error);
});
});
非常感谢任何帮助。 谢谢。
【问题讨论】:
-
您可能需要一些时间来了解 Promise 如何与 Cloud Functions 一起使用。请参阅该页面上的文档和嵌入式视频系列:firebase.google.com/docs/functions/terminate-functions
标签: node.js firebase firebase-realtime-database stripe-payments google-cloud-functions