我目前正在从头开始创建一个市场移动应用程序,前端部分使用React Native,后端部分使用Firebase(使用Firebase和Firestore(。
我想知道:
-
我应该使用云函数创建一个RESTful API,并表示创建API端点(将连接到firebase和firestore(,我将从React Native应用程序中的redux操作(使用redux thunk(调用该端点。
-
或者,我应该从redu操作直接调用firebase和firestore。
我看到了每种方法的优点和缺点。
Restful API优点:
-
更安全,因为我可以更容易地检查和操作提交的数据
-
自定义API回复(我可以操作返回数据(
不安的API缺点:
-
可能较慢,因为我必须调用API端点,然后该端点将调用firebase和/或firestore。
-
在firestore数据上设置监听器不会那么容易
你怎么看?
知道我预测该应用程序每天会有几千名用户,我应该选择哪个选项。我希望它尽可能快速、安全,并且能够设置用于通知目的的侦听器。
在我看来,如果你必须管理用户、产品等,你应该将它们混合在一起。Firebase生产具有不同角色的客户端和管理员sdk。如果您不需要管理产品或用户等的任何数据,您可以简单地使用客户端sdk。
我的建议是,您可以在API(服务器端(上使用admin-sdk,也可以在您的客户端上使用client-sdk。
通过客户端sdk对API、监听数据、实时聊天等进行管理。
您可以检查admin和client sdk。这里还有React Native的npm包。
混合会有所帮助,您可以尝试:
- 使用客户端SDK监听少量数据
- 使用云函数编写和排序数据
根据我的经验,从长远来看,写入使用有序id的firebase数据库(在我的情况下(会导致一些巨大的问题。由于安卓系统清除了RAM,当应用程序从非活动状态恢复时,我的应用程序意外地写入了根索引而不是子索引,我丢失了大量数据。
此外,对于通知,请使用Firebase云消息。