首先,我需要获取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/