在客户端与 google-cloud-function 中执行代码

Raf*_*Amo 5 firebase typescript google-cloud-functions firebase-storage google-cloud-firestore

我面临的情况是必须对我的数据库执行一些写入操作,该数据库与不同的集合有很多关系,并且还包括将文件上传到 firebase 存储。

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

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

不管答案如何,我还想知道以下内容:

要在数据库上运行多个写入,建议使用批量写入或事务(取决于问题)。有没有办法在文件上传的同时执行这些批量写入或事务?

提前致谢。

Adr*_*scu 2

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

如果不是,那真的取决于数据。如果您需要对其执行大量转换,或者运行一些更复杂的逻辑来确定要读/写哪些数据,您可能需要考虑在客户端使用云函数,因为您将获得一些性能优势,并且可以保持领先- 后端和后端逻辑分离。再说一遍,没有正确的答案,这就是我在客户端和服务器端之间选择运行查询时的想法。

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

至于你的第二个问题,我不确定你所说的文件上传是什么意思,