正确使用Firebase云功能和条带

时间:2017-07-19 03:14:48

标签: swift firebase firebase-realtime-database stripe-payments google-cloud-functions

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

我上传了他们给出的示例,但我需要稍微修改充电功能。我尝试将它设置为我在实时数据库中的文件路径,但我不确定如何修改整个事情,以便它可以在我的实时数据库结构中工作。比如抓住它需要的参数。以下是我的结构:Payments节点之后的Database Structure for Stripe charges.是用户ID。

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

1 个答案:

答案 0 :(得分:12)

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

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

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

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

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

我希望这对你们中的一些人有所帮助,因为我知道有关条纹和firebase的问题很常见。