Firebase 让客户端通过HTTP POST cloud功能(架构)向Firestore添加数据
所以我第一次使用Firestore和Firebase构建了一个网络商店,我也是NoSQL的新手。我有以下架构问题:当客户下订单时,客户直接将订购的产品发送到Firestore,Firestore将订单存储在集合Firebase 让客户端通过HTTP POST cloud功能(架构)向Firestore添加数据,firebase,rest,google-cloud-firestore,Firebase,Rest,Google Cloud Firestore,所以我第一次使用Firestore和Firebase构建了一个网络商店,我也是NoSQL的新手。我有以下架构问题:当客户下订单时,客户直接将订购的产品发送到Firestore,Firestore将订单存储在集合原始订单中。我当时的想法是在文档create上有一个云函数触发器,用于处理它并生成发票等等。然而,我读到这个函数调用可能会延迟10秒,我希望有一个同步解决方案 相反,我的想法是创建一个HTTP云函数,客户可以将订单发布到该函数,然后HTTP函数处理订单并将其推送到Firestore,然后该
原始订单中
。我当时的想法是在文档create上有一个云函数触发器,用于处理它并生成发票等等。然而,我读到这个函数调用可能会延迟10秒,我希望有一个同步解决方案
相反,我的想法是创建一个HTTP云函数,客户可以将订单发布到该函数,然后HTTP函数处理订单并将其推送到Firestore,然后该函数将orderID或其他内容返回给客户。这种方法感觉更安全,因为用户不必直接与数据库对话。它还解决了Firestore创建触发的a函数可能延迟的问题
然而,我是Firebase的新手,我不确定这在架构上是否是首选方式。我提出的方法似乎更符合常规的旧RESTAPI
你觉得怎么样
谢谢 听起来你肯定有一些服务器端代码和数据库操作,你不能信任客户端去做。(请记住,firestore安全规则是您唯一的保护——任何人都可以在这些规则中运行他们想要的任何代码,而不仅仅是您提供的代码) 云函数正好提供了这一点——由于您都希望操作是同步的(从您的客户机的角度来看),并且客户机可能有某种方式来对过程中的错误做出反应,因此使用云函数对您来说非常有意义 以这种方式使用云功能在Firebase应用程序中非常常见,即使它不是纯粹的REST 此外,如果您在客户机中更普遍地使用Firebase,那么使用函数而不是http函数可能更自然,因为这将以比原始http请求更自然的方式处理参数封送。但是,您的情况并不清楚,因为听起来您今天正在使用RESTAPI 请记住,运行云功能有(或特定配额,取决于您的定价计划)。定价基于调用以及函数的CPU和RAM使用情况