【问题标题】:Using Firebase without duplicating business logic在不重复业务逻辑的情况下使用 Firebase
【发布时间】:2016-09-28 22:15:17
【问题描述】:

我们有一个包含 Web 应用和移动应用的简单场景。这两个应用程序都使用服务器端 Web API。我们的业务逻辑仅驻留在该 API 上。

我们正在从 AWS RDS 迁移到 Firebase。我到处都可以看到我不需要将服务器端代码与 Firebase 一起使用,但是如何直接从我的应用程序(移动和网络)访问 Firebase,而不在两个应用程序上复制我的业务逻辑?

我了解这种方法(仅使用 Firebase 而不使用服务器端代码)适用于简单的应用程序。但如果我不想复制我的逻辑,我能想到的几乎每个应用程序都必须有服务器端 API。

是我遗漏了什么还是我真的还需要一个服务器端 API?

【问题讨论】:

  • 首先想到的是“为什么?”,为什么你认为你需要一个服务器端的api?否则你的问题太宽泛了。与往常一样,几乎所有事情都是按情况进行的。大多数情况下,通过在客户端完成所有工作并将安全性留给数据库(对于学习如何编写良好的安全性规则非常重要),您会做得很好,并且几乎总是在任何大型项目中您都需要一些功能在服务器上运行以避免暴露私钥或运行您无法在客户端上执行的代码(但这是例外,而不是规则)。
  • 我同意你的看法。但让我给你一些背景。可以说,每次我添加新产品时,都必须发送一封电子邮件。我必须在两个应用程序(Web 端移动)上都编写该规则吗?让我们想象一下我的逻辑发生了变化……我是否需要记住我放置该逻辑的任何地方?使用 API 我只需要更新一个地方。现在想象一下我有一个 web 应用程序、ios 应用程序、wp 应用程序和 Android 应用程序的场景。我将不得不在任何地方更新我的代码。不难想象会错过什么。
  • 哦,对了,我一直在使用跨平台 JavaScript,以至于我忘记了这些问题 XD。是的,在那种情况下,我想你必须继续以同样的方式工作。如果您想获得更多见解和想法,仍然认为如果您发布有关真实场景的更具体问题会更有用。

标签: firebase business-logic


【解决方案1】:

由于我的两个应用程序都是 javascript 应用程序(离子和角度),我将创建 javascript 模块并在它们之间共享。

来源: https://medium.com/@benorama/hybrid-mobile-apps-sharing-logic-between-angular2-and-ionic2-apps-7c32145b90d5#.trt4lpc8a

【讨论】:

    【解决方案2】:

    听起来您正在寻找一次写入,随处运行的解决方案。您可以查看:

    • 基于网络的解决方案(例如渐进式网络应用)
    • 混合溶液(例如离子)
    • 接近原生的解决方案(例如 React Native、NativeScript)
    • 交叉编译解决方案(例如 Intel XDK)

    ...可能还有其他几个类别。

    如果这些都不适合您的需求,您将不得不:

    • 将逻辑嵌入 Firebase 安全规则和/或
    • 编写中间或辅助服务器(参见article on application architectures)和/或
    • 将逻辑复制到使用 iOS 和 Android 原生技术编写的应用中

    【讨论】:

    • 实际上我们的移动版本使用 Ionic,网页版本使用 angular2。我说 iOS、Android、wp 只是为了说明。一个简单的问题是:在两个应用程序(Web 和 Ionic)上使用复制我的业务逻辑,还是使用 Web api 作为应用程序和 Firebase 之间的中间件并将逻辑保存在一个地方更好?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2012-08-18
    • 2017-09-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2013-05-18
    相关资源
    最近更新 更多