【问题标题】:https.onRequest() vs onWrite() firebase using nodejs for Stripehttps.onRequest() vs onWrite() firebase 使用 nodejs for Stripe
【发布时间】:2018-08-01 10:46:37
【问题描述】:

目前Firebase/Stripe提供的开源云功能使用onwrite to Firebase数据库来触发对Stripe的收费:

https://github.com/firebase/functions-samples/tree/master/stripe

似乎使用https触发器调用Stripe会更直接和更快,而不是写入同步/写入Firebase服务器数据库的Firebase本地数据库,然后触发对Stripe的云函数调用。

使用Https调用触发Stripe调用会不会有问题?使用 onwrite 触发器代替 https 有什么好处?

【问题讨论】:

  • 你可以使用任何你喜欢的策略。您不受示例代码的约束。
  • 是的,没错,但 Firebase 开源版本出于某种原因提供了 onWrite() 代码/函数,否则他们可能只提供 https.onRequest() 代码/函数供使用。这只是一个奇怪的想法。

标签: firebase stripe-payments google-cloud-functions


【解决方案1】:

初学者到初学者,这是我的理解:

假设您有一个应用程序需要
(1) 使用 Stripe 为用户注册订阅,然后
(2) 用户在使用应用程序时,检查以确保他们的订阅仍然有效。

对于 (1), 每个用户您只需执行一次(ish),并且您需要告诉 Stripe“为此用户进行新订阅”,因此使用 https.onRequesthttps.onCall 是有意义的功能。

对于 (2), 你会检查用户是否订阅了很多次,并且你没有告诉 Stripe 什么,你询问它存储的信息:“这个用户的订阅仍然有效吗?”

如果您询问存储的信息,检查您自己的数据库比等待 Stripe 的响应要快得多。您只需要确保数据库(例如 Firestore)中的信息在 Stripe 中是最新的。

因此,您可以创建一个 Stripe webhook,只要用户的订阅状态发生变化,它就会触发 https.onRequest 函数。然后,您的函数将更改写入数据库。

因此,与其一遍又一遍地询问 Stripe,“这个用户是否订阅了”,然后等待缓慢的响应,您只需检查自己的数据库,知道 Stripe webhook 会保持最新状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-26
    • 2017-09-01
    • 2017-11-10
    • 2017-08-25
    • 2018-03-28
    • 2018-10-11
    • 2017-09-25
    相关资源
    最近更新 更多