這是我第一次嘗試在 Firebase 中部署云功能,通常我使用 Direbase 模擬器,但在這種情況下,使用 Stripe,我遇到了 Cors 的問題。當我運行 command:firebase deploy --only functions
時,我沒有編譯錯誤,但它告訴我發布期間有錯誤。從 Firebase 控制臺看到,我注意到在日志中,它說:
"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"函式加載用戶代碼失敗。
這是我的云功能,我不明白錯誤是什么:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
const stripe = require("stripe")(functions.config().stripe.secret_key);
admin.initializeApp(functions.config().firebase);
export const createCheckoutSessionGreen = functions.region("europe-west6")
.https.onCall(
async (data: any, context: any) => {
const session = await stripe.checkout.sessions.create({
payment_method_types: ["card"],
mode: "payment",
success_url: "http://localhost:8100/tabs/types/song",
cancel_url: "http://localhost:8100/tabs/types/song",
line_items: [
{
price_data: {
currency: "eur",
product_data: {
name: data,
},
unit_amount: 1.99 * 100,
},
quantity: 1,
},
],
});
return session.id;
}
);
uj5u.com熱心網友回復:
如果要使用ES6
語法,則需要將 Typescript 與 Cloud Function 一起使用。看來您正在使用 Javascript,因此請嘗試使用exports
而不是重構代碼export const
。此外,您不需要傳遞任何引數,initializeApp()
因為您正在部署到 Cloud Functions,然后將使用Application Default Credentials:
admin.initializeApp();
exports.createCheckoutSessionGreen = functions.region("europe-west6").https.onCall(...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489781.html
下一篇:如何逐項將陣列項推送到另一個陣列