当我想使用StreamBuilder从Firebase获取数据时,我想要Firebase firestone的图像和一些文本
@override
Widget build(BuildContext context) {
return StreamBuilder (
stream: FirebaseFirestore.instance.collection("products").snapshots(),
builder: (_, snapshot){
if(!snapshot.hasData){
return Center(
child:Text("Loading"),);
}else{
return GridView.builder(
itemCount: snapshot.data.docs.length,
gridDelegate:
new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemBuilder: (BuildContext contex, int index) {
DocumentSnapshot data = snapshot.data.docs[index];
return
Single_prod (
product_name: data['name'],
prod_pictures: data['imageurl'],
prod_oldprice: data['old_price'],
prod_price: data["price"],
);
},
);
}
}
);
当它调用Single_prod类时,它发生在这个类中,图像和文本显示Single_prod类:
class Single_prod extends StatefulWidget {
final product_name;
final prod_pictures;
//final prod_oldprice;
final prod_price;
const Single_prod(
{Key key,
this.product_name,
this.prod_pictures,
this.prod_oldprice,
this.prod_price});
@override
_Single_prodState createState() => _Single_prodState();
}
我得到这个错误:
类型“List”不是类型“String”的子类型
导致错误的相关小部件是
尝试使用product_name:data.data()['name']
,对您的其他产品项目也一样。在您返回的数据中的某个地方,您得到了一个List,并试图将其分配给一个字符串。文件快照中的哪个元素是列表对象?
对于图片,试试这个prod_pictures:data.data()['Imageurl'][0]
。
我想在我的主页上显示我的JSON数据,但我有一个问题。当我运行时,出现一条错误消息“以下类型错误被抛出构建FutureBuilder(脏,状态:_FutureBuilderState#d0e99):”和(错误:类型“List”不是类型“Map”的子类型 下面是我的示例JSON片段(注意:这是本地JSON): 以下是我的餐厅档案: 下面是主页代码:
我试图从XML类型列中检索某个节点。 我的代码在本地环境中的Tomcat中运行良好,但当我创建EAR文件并将其部署到WeSphere Application Server中时。我得到一个错误: 引起:java.lang.NoClassDefFoundError:oracle.xdb.XMLType 在oracle.jdbc.driver.NamedTypeAccessor.getOracleObj
我正在对地图执行firestore查询 没有人工作过,任何帮助都是感激的 谢谢你抽出时间
在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误
如果flatter中存在列表,是否会处理列表映射? 在上面的类中,我们需要手动将json转换为电影列表吗?