我想从实时数据库中获取数据,数据以地图的形式存在
const url='https://XYZfirebaseio.com/products.json';
try{
final resp= await http.get(url);
print(json.decode(resp.body));
final extractedData=json.decode(resp.body) as Map<String,dynamic>;
final List<Product>loadedProducts=[];
extractedData.forEach((id,data){
loadedProducts.add(
Product(
id: data,
title: data['title'],
description: data['descripiton'],
price:data['price'],
imageUrl: data['imageUrl'],
isFavorite: data['imageUrl']
)
);
});
虽然Product类只是一个普通类,其PRICE属性为Double,但其他所有属性都是String。执行此代码时,会产生以下错误。
I/flatter(4228):类型“\u InternalLinkedHashMap”不是类型“String”的子类型
我可以使用什么样的数据结构/方法/解决方法?
产品类别
import 'package:flutter/foundation.dart';
class Product with ChangeNotifier{
final String id;
final String title;
final String description;
final double price;
final String imageUrl;
bool isFavorite;
Product(
{
@required this.id,
@required this.title,
@required this.description,
@required this.price,
this.isFavorite = false,
@required this.imageUrl
}
);
这个问题确实存在于你的每一个循环中,每一个函数都有两个参数,一个带key(你称之为id),另一个带value(你称之为data),问题是你的id参数超过了Products类是一个String,但您正在向它提供Map值。
如果你检查你的json结果,你得到了I/flutter(4307):{-LvsecaYtE8jB81j6USh:{description: DummyTitle, ImageUrl:https.dummmyd.jpg, isFavourite: false, title: DummyTitle}}
,所以foreach循环只会迭代一次,键将是-LvsecaYtE8jB81j6USh
(你的"id"),值将是{description: DummyTitle, ImageUrl:https.dummmyd.jpg, isFavourite: false, title: DummyTitle}
(你的"data"),所以你可以看到,你分配错了...
正确的做法是:
extractedData.forEach((id,data) {
loadedProducts.add(
Product(
id: id,
title: data['title'],
description: data['descripiton'],
price:data['price'],
imageUrl: data['imageUrl'],
isFavorite: data['imageUrl']
)
);
});
这是,假设值“-LvsecaYtE8jB81j6USh”是您想要的真实id。
我有以下Firebase实时数据库连接到我的Flatter项目: 我对flutter和fire base相当陌生,我知道在我的flutter项目中访问此数据库中数据的一种方法是使用数据库引用变量。所以我有以下参考变量: 现在,如何使用此itemRef访问数据库中的温度和脉冲值?
我已经开始学习flutter。并试图将Firebase实时数据库集成到我的flutter项目中。但是当我将依赖项添加到我的android部分的build.graddle文件时,我开始得到这个错误。 当我添加 到应用程序级构建的底部。梯度 还有这个 到我的项目级gradle文件。 我还在pubspec中添加了firebase\u数据库依赖项。依赖项下颤振的yaml文件
我目前正在Android中使用静态编程语言进行培训,每当我试图访问Firebase数据库中当前的数据时都会遇到问题。下面是数据库中的数据: 数据库映像 之后,在将应用程序链接到Firebase之后,我刚刚创建了一个包含所有必需导入的主活动,但不幸的是,每当我执行应用程序并按下按钮时,什么都没有发生。 日志没有出现任何时间,它真的很烦人,因为我在留档中搜索,据我所知,这是我应该做的一切(我还检查了数
收到评论后,我已将以下代码部署到我的Firebase项目中,并已成功部署!。但没有向我发送任何通知。请在此处查看我的Firebase实时数据库截图以更好地理解。 [现已解决:它将只向一个ID(即我的管理设备)发送通知] 工作代码: 有关更多详细信息,请参阅此视频链接 注意:如果您的应用程序已打开并最小化,则会显示通知,但如果应用程序已打开且您正在使用,或者如果应用程序已终止,则强制关闭,则不会工作
在我的flatter应用程序中,我正在使用firebase\u auth for google\u sign\u In,它运行良好。但是当我把cloud\u firestore添加到pubspec时。yaml然后获取依赖项,然后重新启动我的应用程序。它会显示以下错误:
我一直在创建一个应用程序,在过去的两天里一直在解决这个问题,没有任何进展。从internet获取数据时,请使用http。get请求给了我一个异常。这就是我试图集成到我的应用程序中的Rapid API(IMDB)。我将为您提供我的代码,以便更好地理解。 下面是get请求: 以下是我调用API的方式: 这是我从中得到的一个例外: 这就是我期望从服务器得到的JSON: