[英]CORS issue with Firebase Cloud Functions and Angular
[英]Angular and Firebase Cloud Functions return null
我正在研究支付系統。 我使用雲函數模擬 node.js。 我從 Angular 向 Cloud Functions 發送請求。 然后,我將第二個請求從雲函數發送到支付 API。 Payment API 獲取請求成功,支付成功。 但是,我猜由於異步結構,響應在 Angular 端顯示為空。
角度代碼:
constructor(private fns: AngularFireFunctions) {
}
...
...
const callable = this.fns.httpsCallable('app');
var data = callable({req: request})
data.subscribe(async res => {
console.log(res);
});
雲功能:
exports.app = functions.https.onCall((data, context) => {
var res = "";
iyzipay.payment.create(data.req, function (err, result) {
res = result;
});
return res;
});
我怎樣才能等待回應? 我嘗試了異步/等待,但我不完全了解這些主題。 謝謝!
繼續搜索后,我找到了這樣的解決方案:
雲功能:
exports.app = functions.https.onCall((data, context) => {
return new Promise((Resolve, Reject) => {
iyzipay.payment.create(data.req, async function (err, result) {
if (err) {
Reject({
id: 'Payment',
message: err
})
}
if (result && result.status == 'failure') {
Reject({
id: 'Payment Failed',
message: result.errorMessage
})
}
Resolve(result)
});
});
});
像 Akif 那樣有棱有角的一面說:
const callable = this.fns.httpsCallable('app');
const res = await callable({ req: request }).toPromise();
console.log(res);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.