Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 让客户端通过HTTP POST cloud功能(架构)向Firestore添加数据_Firebase_Rest_Google Cloud Firestore - Fatal编程技术网

Firebase 让客户端通过HTTP POST cloud功能(架构)向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,然后该

所以我第一次使用Firestore和Firebase构建了一个网络商店,我也是NoSQL的新手。我有以下架构问题:当客户下订单时,客户直接将订购的产品发送到Firestore,Firestore将订单存储在集合
原始订单中
。我当时的想法是在文档create上有一个云函数触发器,用于处理它并生成发票等等。然而,我读到这个函数调用可能会延迟10秒,我希望有一个同步解决方案

相反,我的想法是创建一个HTTP云函数,客户可以将订单发布到该函数,然后HTTP函数处理订单并将其推送到Firestore,然后该函数将orderID或其他内容返回给客户。这种方法感觉更安全,因为用户不必直接与数据库对话。它还解决了Firestore创建触发的a函数可能延迟的问题

然而,我是Firebase的新手,我不确定这在架构上是否是首选方式。我提出的方法似乎更符合常规的旧RESTAPI

你觉得怎么样


谢谢

听起来你肯定有一些服务器端代码和数据库操作,你不能信任客户端去做。(请记住,firestore安全规则是您唯一的保护——任何人都可以在这些规则中运行他们想要的任何代码,而不仅仅是您提供的代码)

云函数正好提供了这一点——由于您都希望操作是同步的(从您的客户机的角度来看),并且客户机可能有某种方式来对过程中的错误做出反应,因此使用云函数对您来说非常有意义

以这种方式使用云功能在Firebase应用程序中非常常见,即使它不是纯粹的REST

此外,如果您在客户机中更普遍地使用Firebase,那么使用函数而不是http函数可能更自然,因为这将以比原始http请求更自然的方式处理参数封送。但是,您的情况并不清楚,因为听起来您今天正在使用RESTAPI

请记住,运行云功能有(或特定配额,取决于您的定价计划)。定价基于调用以及函数的CPU和RAM使用情况