繁体   English   中英

您如何通过 flutter 中的云功能从 firestore 获取 documentSnapshot?

[英]How do you get a documentSnapshot from firestore over a cloud function in flutter?

首先介绍一下,我需要获取 documentSnapshot 而不仅仅是 Firestore 中记录的数据,因为我的应用程序中有分页,为此,当您查询时,您需要从您的位置发送最后一个 documentSnapshot查询将发送下 10 条记录。

因此,这在 SDK 上运行良好,但我现在想实现 Cloud Functions,当我尝试使用来自云函数的 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;
}

通过这段代码,我得到了错误:type '_InternalLinkedHashMap' is not a subtype of type 'DocumentSnapshot'

有解决方法还是我做错了什么?

来自可调用 Cloud Function 的响应不会是强类型的DocumentSnapshot 这就是错误消息试图告诉您的内容。 你得到一个地图类型的对象,你必须这样处理这个对象。 您不能只强制它成为 DocumentSnapshot。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM