我想通过将原始收据发送至App Store服务器进行验证并使用Firebase云功能获取验证回执,以验证应用购买收据中的苹果。如何在Firebase的Cloud Functions中实现json对象?
var jsonObject = {
'receipt-data': receiptData,
password: functions.config().apple.iappassword
};
var jsonData = JSON.stringify(jsonObject);
var firebaseRef = '/' + fbRefHelper.getUserPaymentInfo(currentUser);
let url = "https://sandbox.itunes.apple.com/verifyReceipt";//or production
request.post({
headers: { 'content-type': 'application/x-www-form-urlencoded' },
url: url,
body: jsonData
}, function (error, response, body) {
if (error) {
} else {
var jsonResponse = JSON.parse(body);
if (jsonResponse.status === 0) {
console.log('Recipt Valid!');
} else {
console.log('Recipt Invalid!.');
}
if (jsonResponse.status === 0 && jsonResponse.environment !== 'Sandbox') {
console.log('Response is in Production!');
}
console.log('Done.');
}
});
这是逻辑代码。如何输入收据JSON对象(位于Firebase数据库中)以及如何将此代码集成到http函数中?我正在使用'请求'npm库。
你试图创建一个HTTP函数时遇到了什么特定的问题? –
我不确定如何获取我为实时Firebase数据库中的每个用户存储的收据。如果我使用数据库云功能.onwrite()或.onupdate(),我可以使用db.ref('Customers/{uid}/receiptData')访问收据,并使用event.data获取收据,然后传递它进入这个逻辑。但是,使用http功能,我无法找到文档来做这样的事情。此外,由于我是node.js的新手,我很难理解http云功能的流程和结构。具体来说,我该如何实现这个逻辑代码。 – JackBrother
您通常会在您的Cloud Functions代码中使用[Firebase Admin SDK](https://firebase.google.com/docs/database/admin/start)访问数据库。请参阅https://stackoverflow.com/questions/43650472/access-db-data-in-cloud-functions-for-firebase –