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

时间:2018-11-26 06:34:43

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

系统设计问题:

我正在将Firebase用于移动应用程序,并将Firestore作为数据库,并将Firebase用作后端。

我愿意吗

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

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

2 个答案:

答案 0 :(得分:1)

  

我正在从系统设计的角度寻求指导,这两种选择中的哪一种更好。

恕我直言,不应该问这个问题,这更好,因为这些产品Cloud FirestoreCloud Functions for Firebase中的每一个都是两种具有不同机制但目的相同的不同产品。

正如Jack Woodward在回答中提到的那样,第一个解决方案可以帮助您在客户端应用程序之间保持数据同步。与Firebase realtime database一样,主要功能是实时功能。在这两个数据库中,您的数据都存储为JSON,并实时同步到每个连接的客户端。

关于第二个选项,如官方文档中所述:

  

用于Firebase的云功能可让您自动运行后端代码,以响应由Firebase功能和HTTPS请求触发的事件。您的代码存储在Google的云中,并在托管环境中运行。无需管理和扩展自己的服务器。

如果您只是询问如何使用Cloud Functions,请参阅the use cases of Cloud Functions

  • 当发生有趣的事情时通知用户。
  • 执行实时数据库清理和维护。
  • 在云中而不是在您的应用程序中执行密集的任务。
  • 与第三方服务和API集成。

答案 1 :(得分:0)

两种Firebase数据库产品均设计为可在客户端上使用。它的杀手级功能之一是自动实时同步更改。因此,绝对可以从客户端使用它。那并不是说您也不能从服务器上消费。但这一切都与有效设置规则有关,以便您可以从客户端查询。如果要保护数据库,则需要使用Firebase Auth。一些到相关文档的链接。

Firestore Security Rules Example of some Security Rules for querying

Firebase Auth

如果您已经有一种身份验证方法并且无法迁移到Firebase Auth,则可以使用Custom Auth,在您对人员进行身份验证时,可以使用Firebase令牌向他们颁发身份,您可以在应用程序中使用它们登录

相关问题