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

时间:2019-02-01 18:02:05

标签: javascript firebase google-cloud-firestore google-cloud-functions cross-platform

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

例如,在两个应用程序上,您都将单击一个按钮来更新Firestore数据库中的字段,而不是先编写逻辑来用Javascript编写代码,然后再编写Swift,那么最好的做法是只编写一次逻辑然后从两个平台调用相同的逻辑?

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

1 个答案:

答案 0 :(得分:3)

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

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

我还看到许多开发人员创建了Cloud Functions来合并他们需要的所有数据。这样,客户端可以只执行一次调用就可以从多个集合中获取数据。但是我本人并不喜欢这样做,因为那样会失去Cloud Firestore SDK的离线和实时功能。