Stripe firebase扩展,监听收款组内的发票收款



关于firebase的条带扩展:https://firebase.google.com/products/extensions/firestore-stripe-invoices我还没有在文档中找到任何相关的东西,源代码也没有向我透露太多(至少在我的理解中)。

在扩展的配置中,它请求一个集合来侦听发票。是否可以使用集合组来代替?所以不是监听invoices的发票而是监听users/{uid}/invoices

从扩展代码,

let invoicesInFirestore = await admin
.firestore()
.collection(config.invoicesCollectionPath)
.where('stripeInvoiceId', '==', invoice.id)
.get();

在撰写本文时,似乎不打算处理多个子集合。

我可以看到两个解决方案:

1。调整扩展代码来创建您自己的云函数

你复制扩展代码并修改它,这样它可以处理多子集合,以创建你自己的云函数。

注意扩展代码用export const sendInvoice = functions.handler.firestore.document.onCreate(...)声明Cloud函数。HandlerBuilder类简化了构建Firebase Extensions的开发人员编写函数的过程…当通过Firebase CLI编写用于部署的普通函数时,不要使用HandlerBuilder。">

所以你应该这样调整:

export const sendInvoice = functions.firestore
.document('users/{uid}/invoices')
.onCreate((snap, context) => {...}

但是,请注意,通过编写自己的Cloud Function,您将失去对扩展的潜在未来改进。

2。创建一个云函数,从子集合中复制/粘贴发票

这个想法是有一个云函数监听所有的users/{uid}/invoices子集合(见上文),复制新文档并在"中央"创建一个副本。扩展集合。您可以在复制的文档中添加一些额外的字段,例如用户的uid。

请注意,如果你想从Stripe获得反馈,你可能需要另一个Cloud函数(它收听"中央"扩展集合)将Stripe webhook调用的结果复制/粘贴到users/{uid}/invoices子集合中的原始文档。

我个人倾向于第二种方法。

相关内容

  • 没有找到相关文章

最新更新