flutter - 如何通过Flutter中的云功能从Firestore获取documentSnapshot?

标签 flutter dart google-cloud-firestore google-cloud-functions

首先,我需要获取documentSnapshot,不仅要获取Firestore中记录的数据,因为我的应用程序中有分页功能,并且要这样做,当您查询时,您需要从您的位置发送最后一个documentSnapshot查询将发送10条下一条记录。

因此,这可以很好地与SDK配合使用,但是我现在想实现Cloud Functions,并且当我尝试通过cloud函数响应documentSnapshot时,无法在Flutter中获取documentSnapshot。

这是问题所在的代码部分:

final function = _cloudFunctions.getHttpsCallable(
  functionName: 'createRecord',
);
try {
  final response = await function.call(data);
  final DocumentSnapshot doc = response.data;
  return doc;
} catch (e) {
  print(e)
  return null;
}

这段代码我得到了错误:类型'_InternalLinkedHashMap'不是类型'DocumentSnapshot'的子类型

是否有解决方法,或者我做错了什么?

最佳答案

来自可调用的Cloud Function的响应不会是强类型的DocumentSnapshot。这就是错误消息试图告诉您的内容。您将获得一个 map 类型对象,并且您必须像这样处理该对象。您不能仅仅强制它成为DocumentSnapshot。

如果将可调用函数用作分页工具,则将无法在客户端和函数之间来回传递DocumentSnapshot对象。您将必须传递该函数足够的信息以进行分页而不提供DocumentSnapshot。

分页实际上并不需要DocumentSnapshot-您所需要的是足够的信息来告诉查询从上次停止的地方开始,如documentation所示。这涉及使用startAt或startAfter,使用最后看到的文档中的信息。

关于flutter - 如何通过Flutter中的云功能从Firestore获取documentSnapshot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59899218/

相关文章:

flutter - 引发了另一个异常:RenderFlex在Flutter的右侧溢出了265个像素

java - 即时应用程序 - 具有可能 firestore 错误的功能模块 默认 FirebaseApp 在此过程中未初始化

swift - 有没有一种方法可以将 GeoFireStore 查询与普通的 Firestore 查询结合起来?

ios - 如何初始化 Firestore 文档引用 Swift

class - Flutter appBar Backbutton 没有出现

dart - Flutter - 小部件动画状态即使在被移除后仍然存在

flutter - 如何在 flutter 中实现圆形的底部应用栏?

flutter - Google Cloud SQL 连接抖动

flutter - 在使用 flutter_bloc 库发送事件之前等待一些结果

dart - 如何在组件外部访问AngularDart组件属性(NgOneWay),例如。在页面上?