正确使用Firebase云功能和条带

Tay*_*son 3 stripe-payments firebase swift firebase-realtime-database google-cloud-functions

我正在尝试使用Firebase Cloud功能和Stripe,以及iOS(Swift).我想使用Firebase Cloud功能来执行Stripe所需的卡充电.我正在尝试使用此示例:Firebase Stripe示例

我上传了他们提供的示例,但我需要稍微修改一下充电功能.我尝试将它设置为我在实时数据库中的文件路径,但我不确定如何修改整个事情,以便它可以在我的实时数据库结构中工作.比如抓住它需要的参数.这是我的结构:条带费用的数据库结构. Payments节点之后是userID.

我知道该函数基本上寻找特定节点的数据库更新,但我不确定如何确保它从子节点获取正确的值.我希望我以一种可以理解的方式描述了这一点.如果我没有让我知道,我将尽我所能改写.谢谢!

Tay*_*son 12

好吧,我自己想出来了,我会在这里写一个迷你教程.

因为这个问题专门处理条带,我只会介绍这个特定的用例.首先,阅读Stripe文档非常重要.它指定了它期望你给它的API的参数.以下是使用Stripe:条纹费用文档为卡充电时的预期链接

其次,您需要在这些预期参数之后为Firebase Realtime数据库建模,至少在用户在您的应用中进行的购买方面.大多数情况下,您可以使用具有Key:值对的字典.确保将amount参数乘以100,因为Stripe仅采用整数.这意味着如果您以22.48为例收费,则将其乘以100得到2248.当您检查条带中的仪表板时,它将显示为22.48.

第三条纹需要与后端对话,以便您可以为卡充电.Firebase Cloud功能非常适用于此.还记得你的实时数据库吗?当您在指定的节点上发生写入时,您可以触发云功能.幸运的是,Firebase在GitHub上提供了一个示例:Firebase Stripe示例

您可以修改它侦听数据库写入的代码行.只要您至少返回令牌和要收取的金额,您就可以将其更改为您的结构.如果您要让用户每次都输入他们的信息,那么您需要删除customer参数(在index.js文件中),因为它会期望具有不同前缀的不同令牌.(这在文档中有说明)该示例的其余部分已有详细记录,可以遵循.费用的结果将被写回您的数据库.以下视频向您展示了函数如何触发写入工作以及一些使用的命名法.:Youtube Video for Cloud功能在写入时触发.

我希望这对你们中的一些人有所帮助,因为我知道关于条纹和firebase的问题是相当普遍的.