gpt4 book ai didi

firebase - Stripe firebase 扩展,收听收款组中的发票收款

转载 作者:行者123 更新时间:2023-12-04 08:01:11 24 4
gpt4 key购买 nike

关于 firebase 的条纹​​扩展:https://firebase.google.com/products/extensions/firestore-stripe-invoices
我还没有在文档中找到任何相关的内容,源代码也没有向我透露太多信息(至少在我的理解中)。
在扩展的配置中,它要求一个集合来监听发票。是否可以使用集合组代替?所以不要在 invoices 听发票我希望它在 users/{uid}/invoices 收听

最佳答案

extension code

let invoicesInFirestore = await admin
.firestore()
.collection(config.invoicesCollectionPath)
.where('stripeInvoiceId', '==', invoice.id)
.get();
似乎在撰写本文时,预计不会处理多个子集合。
我可以看到两种解决方案:
1. 修改扩展代码以创建您自己的 Cloud Functions
您复制扩展代码并以处理多个子集合的方式对其进行修改,以创建您自己的云函数。
请注意,扩展代码使用 export const sendInvoice = functions.handler.firestore.document.onCreate(...) 声明了 Cloud Function。如 doc 中所述,“ HandlerBuilder 类有助于开发人员构建 Firebase 扩展 编写函数 ......在通过 Firebase CLI 编写用于部署的正常函数时,请勿使用 HandlerBuilder”。
所以你应该按如下方式调整它:
export const sendInvoice = functions.firestore
.document('users/{uid}/invoices')
.onCreate((snap, context) => {...}
但是,请注意,通过编写自己的 Cloud Functions 函数,您将失去对扩展的潜在 future 改进。
2. 创建一个从子集合复制/粘贴发票的云函数
这个想法是让云函数监听所有 users/{uid}/invoices 子集合(见上文),复制新文档并在“中央”扩展集合中创建一个副本。没有什么可以阻止您在复制的文档中添加一些额外的字段,例如用户的 uid。
请注意,如果您想从 Stripe 获得反馈,您可能需要另一个 Cloud Function(它监听“中央”扩展集合)将 Stripe webhook 调用的结果复制/粘贴到 users/{uid}/invoices 子集合中的原始文档。
我个人会采用第二种方法。

关于firebase - Stripe firebase 扩展,收听收款组中的发票收款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66453660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com