在客户端vs谷歌云功能中执行代码

时间:2020-04-20 20:05:52

标签: typescript firebase google-cloud-firestore google-cloud-functions firebase-storage

我必须对数据库执行一些写操作,这些写操作与不同的集合有很多关系,并且还包括将文件上载到Firebase存储中。

这时我问自己,我的客户应该照顾我整个应用程序的数据一致性吗?因为实际上我的客户只想执行“简单”操作,尽管实际上,它涉及多次写入Firestore以及将文件上传到Firebase存储。

我的问题是:在这种情况下,我应该使用Firestore函数还是继续在客户端上执行此代码?

无论答案如何,我还想知道以下内容:

要在数据库上运行多次写入,建议使用批处理写入或可能使用事务处理(取决于问题)。 是否可以执行这些批处理写入或事务处理以及文件上传?

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为没有“正确”的方法可以做到这一点。 Firestore有一个客户端库,因此您可以使用它。如果打算构建REST / GraphQl API,则显然应该使用云函数。

如果不是,则实际上取决于数据。如果您需要对其进行大量转换,或运行一些更复杂的逻辑来确定要读取/写入的数据,则可能需要考虑在客户端使用云功能,因为这将获得一些性能上的好处,并且可以保持领先地位-后端逻辑分离。再次,没有正确的答案,这就是我在客户端和服务器端之间选择运行查询时的想法。

此外,客户端和服务器API之间也存在差异。您可以查看这篇文章:https://medium.com/firebase-developers/should-i-query-my-firebase-database-directly-or-use-cloud-functions-fbb3cd14118c

关于第二个问题,我不确定文件上传是什么意思