Flutter开发报错:QuerySnapshot<Object?>未定义getter 'documents'
解决Firestore QuerySnapshot的'documents'未定义错误
这个错误是因为Firestore SDK版本更新后API做了调整:
QuerySnapshot的documents属性已被移除,改用docs属性获取查询结果列表- 文档数据的获取从
.data属性改为.data()方法
修改后的代码如下:
var capitalValue = value.substring(0,1).toUpperCase() + value.substring(1); if(queryResult.length == 0 && value.length == 1) { SearchService().searchProduct(value).then((QuerySnapshot docs){ for(int i = 0; i < docs.docs.length; i++) { // 若确定文档数据非空,可使用docs.docs[i].data()! queryResult.add(docs.docs[i].data()); } }); } else{ tempSearch = []; queryResult.forEach((element) { if(element['category'].startsWith(capitalValue)) { setState(() { tempSearch.add(element); }); } }); }
关键修改点
- 把所有
docs.documents替换为docs.docs - 把
docs.documents[i].data替换为docs.docs[i].data(),如果需要强制非空可以加!(需确保文档存在数据)
内容的提问来源于stack exchange,提问作者user19908504
相关产品推荐
相关产品推荐

