firebase - 直接从移动应用程序或通过后端服务器访问 firestore?

标签 firebase model-view-controller architecture google-cloud-firestore system-design

系统设计问题:

我将 firebase 用于我的移动应用程序,firestore 作为数据库,firebase 作为后端。

我:

  • 直接从移动应用程序访问 firestore
  • 仅允许通过中间件/后端服务器进行间接访问(例如 firebase 函数)

  • 我正在从系统设计的角度寻求指导,这两种选择中哪一种更好。
    传统上,我认为直接从客户端访问数据库是不受欢迎的,但在官方的 firestore 文档中,谷歌似乎实际上鼓励直接访问,中间没有任何后端服务器。

    最佳答案

    I'm looking for guidance from a system design standpoint on which of the two alternatives is better.


    恕我直言,这个问题不应该被问到,这更好,因为每一种产品,Cloud FirestoreCloud Functions for Firebase是两种完全不同的产品,具有不同的机制但具有相同的目的。
    正如 Jack Woodward 在他的回答中提到的,第一个解决方案可以帮助您在客户端应用程序之间保持数据同步。如 Firebase Realtime database 的情况主要功能是实时功能。在这两个基地中,您的数据都存储为 JSON 并实时同步到每个连接的客户端。
    关于第二个选项,如官方文档中所示:

    Cloud Functions for Firebase lets you automatically run backend code in response to events triggered by Firebase features and HTTPS requests. Your code is stored in Google's cloud and runs in a managed environment. There's no need to manage and scale your own servers.


    如果您只是询问您可以使用 Cloud Functions 做什么,请参阅 the use cases of Cloud Functions :
  • 当有趣的事情发生时通知用户。
  • 执行实时数据库清理和维护。
  • 在云中而不是在您的应用程序中执行密集型任务。
  • 与第三方服务和 API 集成。
  • 关于firebase - 直接从移动应用程序或通过后端服务器访问 firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475832/

    相关文章:

    javascript - Plupload block 大小将文件重命名为 Blob

    asp.net-mvc - 我只是不了解 TDD 单元测试(Asp.Net MVC 项目)吗?

    php - 在PHP中根据对象属性值动态实现接口(interface)?

    angularjs - 在 AngularFire 中,为什么 Controller 中的 auth.user 属性为空,而 View 中却没有?

    c# - 将 MVC 列表分成多个 div

    android - Firebase 在 Android 中以编程方式获取子值索引

    android - 将业务逻辑放在 ListView Controller 中以使用 Cursor 和 SimpleCursorAdapter 或将自定义 ListView 适配器与数据类一起使用?

    php - 如何更好地解耦我的数据层并限制我的单元测试范围?

    android - Firebase 仅在某些设备上进行身份验证?

    firebase - 无法访问 Firebase 函数中自动填充的环境变量