【发布时间】:2020-12-22 13:33:37
【问题描述】:
这就是我想要完成的事情:我正在建立一个网上商店。网上商店有一个 React 前端。前端从 Firestore 中获取 5 collections 并在商店页面上显示集合数组中的所有商品。用户在商店页面上选择商品。 I send the item fields such as (price, name, quantity, id) 到我的express server 和服务器进行项目字段的结帐会话。用户转到 Stripe 结帐表单,并在付款完成后由 Stripe 发送回我的前端。我在我的服务器上监听该事件,然后何时想要更新 Firestore 中项目的数量字段。
但是我如何在 Firestore 中查询此项目?有没有办法只用这个 id 字段(或 name 字段)来查询 Firestore?一些类似的东西:
db
.collection('collections')
.where('id', '===', 1)
或者我是否需要将(集合的)文档 ID 保存为项目映射中的一个字段并将其发送到 Stripe?还是有更好的方法来做到这一点?我在网上找不到任何关于此的内容。
Here is a screenshot of Firestore.
请原谅我的初学者问题。我还在学习 React、Firestore 和 Node.js。
【问题讨论】:
-
取决于您需要传递的内容,虽然我无法与 Firestore 交谈,但一旦您拥有想要出售的物品(很可能通过 ID 映射到实际产品和创建的价格)在 Stripe 中)您还可以在创建结帐会话时将元数据作为键:值对传递。 stripe.com/docs/api/checkout/sessions/… 如果您想传递数据。例如,当结帐会话完成时,您就可以使用此元数据。
-
@v3nkman 感谢您的回复。是的,在结帐会话中使用元数据正是我的想法。但是现在如何使用提供的元数据更新 Firestore 是个问题 :)
-
快速点:在 Firestore 中,您使用“==”,而不是“===”。 firebase.google.com/docs/reference/js/…
标签: javascript reactjs firebase google-cloud-firestore stripe-payments