我正在使用它从Firestore数据库中获取消息列表,但是,这给了我一个错误:
颤振:构建时引发了以下NoSuchMethodError: flutter:类“ QuerySnapshot”没有实例获取器“ document”。 颤动:接收器:'QuerySnapshot'的实例 颤抖:尝试通话:文档
我正在使用的代码是:
useEffect(() => {console.log(arr)})
我是Firestore的新手,noSQL谁能在这里提供帮助?
答案 0 :(得分:16)
我遇到了同样的问题,我的解决方法是将 documents
更改为 docs
,请参阅以下内容:
snapshot.data.docs[index]
答案 1 :(得分:2)
我有同样的问题。这是一个错字。
snapshot.data.document[index]
应为:
snapshot.data.documents[index]
答案 2 :(得分:0)
因此问题出在构建器中:(BuildContext上下文,AsyncSnapshot快照)应该是(BuildContext上下文,AsyncSnapshot'<'QuerySnapshot'>'快照)添加了该名称后,您将可以访问 snapshot.data.documents
QuerySnapshot 在没有尖括号的情况下,我不得不将其放在此处以使其出现在Stackoverflow上。 >
答案 3 :(得分:0)
我也有这个问题。
我的解决方法是将其重写为
def mean(person_cls):
class MeanInner(person_cls):
def hello(self, n):
print(id(self), f"{n} times mean hello in {self.lang}")
return MeanInner
a = mean(Person)('English')
c = copy.copy(a)
c.lang = 'German'
print(id(a), id(c)) # 140407794133424 140407794133536
a.hello(2) # 140407794133424 2 times mean hello in English
c.hello(2) # 140407794133536 2 times mean hello in German
答案 4 :(得分:0)
buildSearchResult() {
return FutureBuilder(
future: searchResultFuture,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return circularProgress();
}
// otherwise if it has data
List<Text> searchResults = [];
snapshot.data.**documents**.forEach((doc) {
User user = User.fromDocument(doc);
searchResults.add(Text(user.username));
});
return ListView(
children: searchResults,
);
});
}
我遇到了类似的问题,我的原因是我省略了上面标有粗体字的文档中的字母“ s”。我写的是“文档”而不是“文档”