我们(我和我的团队)正在构建一个食品配送实时网络和移动应用程序(使用react-native),其中还包括为客户提供的支付集成和管理仪表板。
我们为应用选择的技术堆栈:
查看
- React(网络应用)
- React-native(移动应用)
后端
- express
- Firebase
我们考虑使用网络和移动应用的通用后端来共享应用数据。基本上,我们会创建一个 API,它使用 Express 提供端点,然后 Express 将在 Firebase 中保存/检索数据 。 Express 将是我们的中间件。
我们创建了 2 个项目文件夹,首先只考虑 Web 应用程序:
- react-webapp
- express-webapp
然后,我们为包启动相应的服务器。
不幸的是,API 不是实时的,我们可能必须实现我们的机制才能使流程实时。
因此,我们转而将 firebase 与 React 合并。我们决定仅使用 Express 来发送电子邮件。因此,网络应用程序的文件夹结构类似于:
- react-webapp
- 节点模块
- 公开
- 来源
- 火力基地
通过这种方法,我们创建了一个演示,我们确实获得了实时更新,并且我们还可以使用ReactFireMixin。稍后我们可以使用相同的文件夹并将其添加到react-native以及从数据库中保存/检索数据。
我的问题是,由于我们之前没有使用公共(public)数据库/后端和 React/React-native 构建 Web 和移动应用程序的任何经验,因此这种方法合适吗?无论如何,我们可以将前端代码与后端分离并利用 firebase 的实时功能吗?
将后端与前端分离的原因是为 React 和 React-Native 保留一个通用的实时后端,而不必为 Web 和移动应用保留 2 个单独的 Firebase 文件夹。
注意:如果您想知道为什么是实时的,那么客户已经要求实时下单机制。
最佳答案
可以将 socket.io 与express结合使用,以允许来自 firebase 的实时后端更新。
关于express - 如何在不影响实时功能的情况下为React和React-native托管Firebase的通用后端代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35597408/