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
Firestore通过Firebase函数与Firestore SDK的性能差异_Firebase_Google Cloud Firestore - Fatal编程技术网

Firestore通过Firebase函数与Firestore SDK的性能差异

Firestore通过Firebase函数与Firestore SDK的性能差异,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我们的团队正在开发一款移动应用程序,目前正在使用(Firebase)Firestore作为我们的后端。我们使用Firebase函数包装每个DB访问,以便清理返回到客户端应用程序的对象 与直接访问Firestore相比,这种方法是否会带来任何(额外的)不可察觉的开销?是的,至少现在您获取数据的路径有两个跃点而不是一个跃点。之前,您直接使用一个为返回查询结果而优化的通道访问数据库。现在,您必须支付额外的跃点到云函数的费用,这将导致查询。而且返回给客户机的结果可能比直接进行查询的结果更大 您可能会经历

我们的团队正在开发一款移动应用程序,目前正在使用(Firebase)Firestore作为我们的后端。我们使用Firebase函数包装每个DB访问,以便清理返回到客户端应用程序的对象


与直接访问Firestore相比,这种方法是否会带来任何(额外的)不可察觉的开销?

是的,至少现在您获取数据的路径有两个跃点而不是一个跃点。之前,您直接使用一个为返回查询结果而优化的通道访问数据库。现在,您必须支付额外的跃点到云函数的费用,这将导致查询。而且返回给客户机的结果可能比直接进行查询的结果更大


您可能会经历的最大损失是客户端自动执行的文档缓存(在Android和iOS上默认启用)。如果您重复一个查询,并且所有文档都没有更改,那么您可以从缓存中立即获得结果,而不必等待服务器。而且,您不必为缓存命中的文档读取付费。因此,如果您不同时缓存结果,您还需要支付云功能的金钱成本,并为每个请求向Firestore查询。

是的,至少现在您获取数据的路径有两个跃点,而不是一个跃点。之前,您直接使用一个为返回查询结果而优化的通道访问数据库。现在,您必须支付额外的跃点到云函数的费用,这将导致查询。而且返回给客户机的结果可能比直接进行查询的结果更大


您可能会经历的最大损失是客户端自动执行的文档缓存(在Android和iOS上默认启用)。如果您重复一个查询,并且所有文档都没有更改,那么您可以从缓存中立即获得结果,而不必等待服务器。而且,您不必为缓存命中的文档读取付费。因此,如果您不缓存结果,您还需要为每个请求支付云功能和Firestore查询的金钱成本。

是,但否取决于您的用例

如果用户数量较少且使用率相对较低(就给定配额而言),建议应用云功能。如中所述,Firebase云功能在资源限制、时间限制和速率限制方面提供了很大的配额,特别是对于Spark计划(免费)具有良好的定价

使用云功能的优势在于,它具有高速可伸缩的计算/处理单元,与使用手机CPU相比,可以缩短特定功能的处理时间,在某些情况下,手机的计算能力较低(必须考虑到各种用户并不是每个人都拥有高规格的手机),为了提供更好的用户体验(UX),所有这些麻烦都可以通过云函数来完成!
注:我同意道格,成本是其中的一个因素,但我们也应该考虑性能和其他角度。

< P> <强>是,但不根据您的用例。

如果用户数量较少且使用率相对较低(就给定配额而言),则建议应用云功能。如中所述,Firebase云功能在资源限制、时间限制和速率限制方面提供了较大的配额,特别是对于Spark计划(免费),价格优惠

使用云功能的优势在于,它具有高速可伸缩的计算/处理单元,与使用手机CPU相比,可以缩短特定功能的处理时间,在某些情况下,手机的计算能力较低(必须考虑到各种用户并不是每个人都拥有高规格的手机),为了提供更好的用户体验(UX),所有这些麻烦都可以通过云函数来完成!
注:我同意道格的观点,成本是其中的一个因素,但我们也应该考虑绩效和其他观点。

< P>是的,但是答案可以根据情况而有所不同。 如果客户机希望获取与数据库中完全相同的记录,Firebase SDK可能会更快,因为调用Firebase函数没有开销

如果我们在获取记录后进行了大量处理,那么Firebase Functions+Firebase Admin SDK可能会更快,因为Firebase Functions中的处理单元可能比移动CPU快。但是,如果请求响应更快,客户端应用程序可能会显示另一条消息,说明已获取某些内容,并且当前正在处理中由于处理繁重,用户体验可以接受


我能想出的Firebase函数始终获胜的唯一情况是,服务器减少了数据大小,从而减少了Firebase函数带来的开销(包括处理时间)通过较短的网络延迟进行补偿。这也有利于保存客户端的数据计划。

是的,但答案可能会根据情况有所不同

如果客户机希望获取与数据库中完全相同的记录,Firebase SDK可能会更快,因为调用Firebase函数没有开销

如果我们在获取记录后进行了大量处理,那么Firebase Functions+Firebase Admin SDK可能会更快,因为Firebase Functions中的处理单元可能比移动CPU快。但是,如果请求响应更快,客户端应用程序可能会显示另一条消息,说明已获取某些内容,并且当前正在处理中由于处理繁重,用户体验可以接受

我能想出的唯一的例子