Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase中的可观察后端?_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase中的可观察后端?

Firebase中的可观察后端?,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我们使用Firebase Firestore和云功能作为Flatter应用程序的后端。该应用程序直接从Firestore获取大部分数据(有安全规则),而一些数据通过云功能移动。我们正在考虑为我们的产品创建一个API,即使应用程序仅与云功能交互 我们面临的一个问题是观察对象状态。Firestore库允许轻松地对文档进行流式处理,即reference.document(id).snapshots()返回流,但云函数是不可见的,其生命周期也长达9分钟。是否有将Firestore文档更改从后端传输到应用

我们使用Firebase Firestore和云功能作为Flatter应用程序的后端。该应用程序直接从Firestore获取大部分数据(有安全规则),而一些数据通过云功能移动。我们正在考虑为我们的产品创建一个API,即使应用程序仅与云功能交互

我们面临的一个问题是观察对象状态。Firestore库允许轻松地对文档进行流式处理,即
reference.document(id).snapshots()
返回
,但云函数是不可见的,其生命周期也长达9分钟。是否有将Firestore文档更改从后端传输到应用程序的良好做法?

您必须选择:

  • 在云函数上构建自定义API,但没有Firebase的长期实时监听特性
  • 在支持长时间连接的后端基础设施上构建自定义API,如几乎所有有状态/服务器完整平台。为了保持自动缩放,可以考虑像Kubernetes这样的东西。
  • 将您的自定义API构建为Cloud Firestore(或实时数据库)的一部分,使用云函数准备您的客户随后使用的数据

最后一种方法在经验丰富的无服务器开发人员中很常见,因为它允许您在云功能(或其他无服务器基础设施,如数据流、大查询等)中使用非常通用、安全的后端代码,但仍然可以使用Firestore作为客户端收听和写信的端点。

谢谢您的回答。你能再详细说明一下最后一点吗?这是否意味着,除了我们提供的RESTful API之外,我们API的用户在其代码和查询特定集合中还需要Firebase依赖项/库?是的,在最后一种情况下,您的客户仍将直接与Firestore通信。在所有繁重的数据处理完成后,您将使用它作为一种代理与客户进行通信。。