Firebase中的可观察后端?
我们使用Firebase Firestore和云功能作为Flatter应用程序的后端。该应用程序直接从Firestore获取大部分数据(有安全规则),而一些数据通过云功能移动。我们正在考虑为我们的产品创建一个API,即使应用程序仅与云功能交互 我们面临的一个问题是观察对象状态。Firestore库允许轻松地对文档进行流式处理,即Firebase中的可观察后端?,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我们使用Firebase Firestore和云功能作为Flatter应用程序的后端。该应用程序直接从Firestore获取大部分数据(有安全规则),而一些数据通过云功能移动。我们正在考虑为我们的产品创建一个API,即使应用程序仅与云功能交互 我们面临的一个问题是观察对象状态。Firestore库允许轻松地对文档进行流式处理,即reference.document(id).snapshots()返回流,但云函数是不可见的,其生命周期也长达9分钟。是否有将Firestore文档更改从后端传输到应用
reference.document(id).snapshots()
返回流
,但云函数是不可见的,其生命周期也长达9分钟。是否有将Firestore文档更改从后端传输到应用程序的良好做法?您必须选择:
- 在云函数上构建自定义API,但没有Firebase的长期实时监听特性
- 在支持长时间连接的后端基础设施上构建自定义API,如几乎所有有状态/服务器完整平台。为了保持自动缩放,可以考虑像Kubernetes这样的东西。
- 将您的自定义API构建为Cloud Firestore(或实时数据库)的一部分,使用云函数准备您的客户随后使用的数据
最后一种方法在经验丰富的无服务器开发人员中很常见,因为它允许您在云功能(或其他无服务器基础设施,如数据流、大查询等)中使用非常通用、安全的后端代码,但仍然可以使用Firestore作为客户端收听和写信的端点。谢谢您的回答。你能再详细说明一下最后一点吗?这是否意味着,除了我们提供的RESTful API之外,我们API的用户在其代码和查询特定集合中还需要Firebase依赖项/库?是的,在最后一种情况下,您的客户仍将直接与Firestore通信。在所有繁重的数据处理完成后,您将使用它作为一种代理与客户进行通信。。