跨多个平台使用业务逻辑的最佳方式(云功能?)



我正在分别使用ReactJS和iOS创建应用程序的移动版和网络版。这两个平台都会从Firestore数据库中提取数据以供使用,但我想知道,为了在数据库上执行操作,只写一次业务逻辑的最佳方式是什么?

例如,在这两个应用程序上,你都会点击一个更新Firestore数据库中字段的按钮,而不是用Javascript和Swift编写逻辑来完成这项工作,有没有最好的做法是只编写一次逻辑,然后从两个平台调用相同的逻辑?

云功能是实现这一目标的最佳方式吗?我可以在say Go中编写一个云函数,然后从switft中的iOS应用程序和javascript中的ReactJS应用程序调用这个云函数吗?这是最佳实践吗?

使用云函数来增加共享代码的数量确实是一种常见的用例。一个相当规则的模式是使用云函数进行更复杂的写入,其中客户端只调用一个函数,然后该函数包含更复杂的代码。我仍然会在应用程序代码中保留更简单的写操作,但这是一个偏好问题。

请注意,如果重复的代码是扇出操作,您也可以让客户端将主文档写入数据库本身,然后触发云函数来执行扇出操作。这样,客户端仍然可以获得通过SDK编写的好处(例如,它可以离线工作),但有些代码在服务器上,因此可以在客户端之间重复使用。

我还看到许多开发人员创建云函数来连接他们需要的所有数据。这样,客户端只需执行一次调用即可从多个集合中获取数据。然而,我自己并不是一个超级粉丝,因为这样你就失去了Cloud Firestore SDK的离线和实时功能。

最新更新