我必须对数据库执行一些写操作,这些写操作与不同的集合有很多关系,并且还包括将文件上载到Firebase存储中。
这时我问自己,我的客户应该照顾我整个应用程序的数据一致性吗?因为实际上我的客户只想执行“简单”操作,尽管实际上,它涉及多次写入Firestore以及将文件上传到Firebase存储。
我的问题是:在这种情况下,我应该使用Firestore函数还是继续在客户端上执行此代码?
无论答案如何,我还想知道以下内容:
要在数据库上运行多次写入,建议使用批处理写入或可能使用事务处理(取决于问题)。 是否可以执行这些批处理写入或事务处理以及文件上传?
谢谢。
答案 0 :(得分:0)
我认为没有“正确”的方法可以做到这一点。 Firestore有一个客户端库,因此您可以使用它。如果打算构建REST / GraphQl API,则显然应该使用云函数。
如果不是,则实际上取决于数据。如果您需要对其进行大量转换,或运行一些更复杂的逻辑来确定要读取/写入的数据,则可能需要考虑在客户端使用云功能,因为这将获得一些性能上的好处,并且可以保持领先地位-后端逻辑分离。再次,没有正确的答案,这就是我在客户端和服务器端之间选择运行查询时的想法。
此外,客户端和服务器API之间也存在差异。您可以查看这篇文章:https://medium.com/firebase-developers/should-i-query-my-firebase-database-directly-or-use-cloud-functions-fbb3cd14118c
关于第二个问题,我不确定文件上传是什么意思