【发布时间】:2021-12-20 20:39:43
【问题描述】:
我有一个 TypeScript 代码的 sn-p(我检查了编译后的 JS:看起来不错),它用于更新我的订阅 firestore 集合中的相应文档。这是一个基于 Fire 的函数,由 Stripe webhook 调用。
const setSubscriptionStateByStripeId = (
suscriptionId: string,
targetState: Stripe.Subscription.Status,
stripeSubscription: Stripe.Subscription): Promise<void> => {
return new Promise<void>((resolve, reject) => {
functions.logger.info("CHECKPOINT A");
// CHECK A
const db = admin.firestore();
db.collection("subscriptions")
.doc(suscriptionId)
.update(
{
state: targetState,
stripeSubscription: stripeSubscription,
}
)
.then(() => {
functions.logger.info("CHECKPOINT B");
resolve();
})
.catch((err: Error) => {
reject(new Error("could not set subscription"));
});
});
};
我希望每个CHECKPOINT A 日志都会显示一个CHECKPOINT B 日志。但是,当我过滤到单个执行时,Firebase 函数日志有时会显示:
CHECKPOINT A
CHECKPOINT B
CHECKPOINT B
我想这是一种“当你理解它时它是完全有意义的”——情况。谁能帮我理解一下?
【问题讨论】:
-
请编辑问题以显示任何人都可以用来重现这种情况的完整最小代码,以及触发它所采取的步骤。
-
您用
google-cloud-functions标记,但您的代码和描述都没有表明它们是相关的。如果 Cloud Functions 与问题相关,请编辑您的问题以说明如何。如果不是,请删除该标签。 -
@DougStevenson 我添加了有错误的辅助方法。弗兰克:Firebase 函数不只是谷歌云函数的封装吗?谢谢两位:我很荣幸您阅读了我的问题!
标签: node.js google-cloud-firestore google-cloud-functions firebase-admin