我想通過將原始收據發送至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 –