node.js - 部署云函数Firebase/Stripe时出错

标签 node.js firebase google-cloud-functions stripe-payments

这是我第一次尝试在 Firebase 中部署云功能,通常我使用 Direbase 模拟器,但在本例中,使用 Stripe,我遇到了 Cors 问题。当我运行命令: firebasedeploy--onlyfunctions 时,我没有编译错误,但它告诉我在发布过程中出现了错误。从 Firebase 控制台查看,我注意到日志中显示:

"@type":"type.googleapis.com/google.cloud.audit.AuditLog","status":{"code":3,"message":"Function failed on loading user code.

这是我的云函数,我不明白错误是什么:

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;
        }
    );

最佳答案

如果要使用 ES6 语法,则需要将 Typescript 与 Cloud Function 结合使用。看来您正在使用 Javascript,因此请尝试使用 exports 而不是 export const 重构代码。此外,您不需要将任何参数传递给 initializeApp(),因为您正在部署到 Cloud Functions,然后它将使用 Application Default Credentials :

admin.initializeApp();

exports.createCheckoutSessionGreen = functions.region("europe-west6").https.onCall(...)

关于node.js - 部署云函数Firebase/Stripe时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72593927/

相关文章:

typescript - 将 firebase 链式方法重写为 promise.all

google-cloud-platform - 从 Cloud Functions 启动 Cloud Dataflow

node.js - Visual Studio Code 提示 #!/usr/bin/env Node

node.js - 尝试访问实时数据库时 Firebase Node.js 管理 SDK 超时

arrays - 从解码的 Firebase 数据中创建一个数组

java - Firebase Android 机器学习套件 : Way to hide display values on QR code

firebase - 如何在 Cloud Function 中触发 Firestore onDelete 后删除存储在 Firebase 存储中的图像?

node.js - 使用 Node 的 Google API 批量请求

javascript - 获取node中某个模块的路径(模块文件夹,不是入口文件)

javascript - 如何使用 React-Router 将页面限制为访客用户?