- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
9 月 2 日的最新编辑:
我对此没有太大的吸引力,即使有赏金,所以我会尝试提出一个更简单、更具体的问题。
所以我根据 Doug 下面的建议重新组织了数据库,因为我无法以其他方式在 firebase 中以任何方式引用数组。所以现在我有一个数组映射,而不仅仅是数组。像这样:
ObjectsList > CarsMap (Map)
- sh899873jsa (Array)
0 "Toyota"
1 "Supra"
2 "1996"
3 "$4990"
- hasd823j399 (Array)
0 "Toyota"
1 "Corolla"
2 "2014"
3 "$11990"
- nelaoiwi283 (Array)
0 "Ford"
1 "Territory"
2 "2018"
3 "$35000"
但我不知道如何实际使用这个结构,因为我以前从未见过。 Frank 在下面的回答中提供给我的代码现在出现了第一个错误,我已将其转换为:
final DocumentReference documents = await Firestore.instance.collection('ObjectsList');
DocumentSnapshot snapshot = await documents.get();
Map<String, dynamic> data = snapshot.data;
var loadCarItems = [];
data.forEach((k,v) => {
values = List<String>.from(v as List<String>),
print(values),
if (values[0] == "Toyota") {
loadCarItems.add(values[0]),
},
});
setState(() {
CarItemsArray = loadCarItems;
});
但是因为我已经更改为 map>array 结构,所以我在这一行遇到错误:
data.forEach((k,v) => {
values = List<String>.from(v as List<String>),
错误是:
Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<String>' in type cast
很明显我需要更改此语法,现在结构已更改,但我不知道如何更改,也无法在网上找到任何内容。
以前的信息:
我正在尝试找出一种从 Firebase 返回整个数组的方法,以便我可以处理其中的数据。
例如,我在数据库中有一个包含数组的文档,如下所示:
ObjectsList > sh899873jsa
0 "Toyota"
1 "Supra"
2 "1996"
3 "$4990"
hasd823j399
0 "Toyota"
1 "Corolla"
2 "2014"
3 "$11990"
nelaoiwi283
0 "Ford"
1 "Territory"
2 "2018"
3 "$35000"
所以对于每个数组,我在创建时生成了一个随 secret 钥,这并不重要。我基本上只需要能够将所有数据作为单独的对象返回。理想情况下,我希望能够返回“所有丰田”,例如。这就是结局。
这是我到目前为止根据下面的 Frank 的建议生成的代码,他让我走上了正确的道路。
来自构建 wdiget:
Container(
child: StreamBuilder(
stream: Firestore.instance.collection('cars').document('ObjectsList').snapshots(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) {
return LoadingAnimationBasic();
}
if (snapshot.data == null) {
return LoadingAnimationBasic();
} else {
return ListView(
shrinkWrap: true,
children: _buildListCards(snapshot),
);
}
},
),
),
简化后的 _buildListCards 函数,以便您了解其工作原理:
_buildStoresList(AsyncSnapshot<DocumentSnapshot> snapshot) {
return snapshot.data.data.values
.map((doc) => doc[0] == "Toyota" ? GestureDetector(
child: Container(
width: MediaQuery.of(context).size.width,
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(0.0),
),
color: Colors.white70,
elevation: 10,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(2.0),
child: ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 120,
minWidth: 120,
maxHeight: 100,
minHeight: 100,
),
child: Image.network(
'some toyota picture URL',
fit: BoxFit.cover,
),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.5,
child: Padding(
padding: const EdgeInsets.fromLTRB(10, 10, 0, 0),
child: Text(
doc[1],
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 18,
),
),
),
),
Container(
width: MediaQuery.of(context).size.width * 0.5,
child: Padding(
padding: const EdgeInsets.fromLTRB(5, 10, 0, 0),
child: Text(
doc[2],
style: TextStyle(
fontSize: 12,
),
),
),
),
],
),
Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.fromLTRB(5, 40, 0, 0),
child: Text(
doc[3],
style: TextStyle(
fontSize: 14,
),
),
),
],
),
],
),
),
),
onTap: () {
futureTapHandlerHere();
},
) : SizedBox(), )
.toList();
}
所以现在唯一剩下的就是能够从数据库中编辑/删除这些条目,我认为这必须依赖于创建它们时生成的唯一标识符。如果没有标识符,我看不出还有什么其他方法可以执行此功能,但我不知道如何实际使用它或从数据库中返回它。
最佳答案
调用 snapshot.data()
返回一个 Map<String, dynamic>
.您可以遍历此映射中的条目,然后获取每个(数组)值的第一个子项。
所以像这样:
List.from(event.snapshot.value 作为列表)
final DocumentReference documents = await Firestore.instance.collection('cars').document('ObjectsList');
DocumentSnapshot snapshot = await documents.get();
Map<String, dynamic> data = snapshot.data();
var cars = [];
data.forEach((k,v) => {
var values = List<String>.from(v as List<dynamic>);
cars.add(values[0]);
})
setState(() {
arrayOfCars = cars
});
关于firebase - Flutter 从 Firebase Cloud Firestore 返回完整数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63599018/
具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择。本文使用Apache Jakarta Commons Net(commons-net-3.3.jar)
我在日志文件中收到这些警告: WARN 2013-01-15 00:08:15,550 org.eclipse.jetty.http.HttpParser- HttpParser Full for
我在使用特定网页时遇到问题。当我按下链接时,我收到应用程序错误(不是 http 错误等,而是应用程序级别错误)。 但是我打开了开发人员工具和网络控制台,我看到没有请求发送到服务器。 所以我双击并选择查
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我正在尝试创建完整 uiscrollview 的快照,所有内容大小,我已经搜索了很多,并且我在 SO 上找到了一些东西,如下所示: Getting a screenshot of a UIScroll
我想复制一个包含以下结构的Vector,对我来说重要的是在修改复制的 vector 时保持原始Vector完整: public class objet_poid_n { public int
给定一个示例字符串 s = '嗨,我的名字是 Humpty-Dumpty,来自“爱丽丝,爱丽丝镜中奇遇记”',我想将其分成以下 block : # To Do: something like {l =
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试创建一个正则表达式来查找文本中的 Linux 文件路径,但是正则表达式对我来说非常陌生。我有下面的代码片段,它将识别下面文件结构的开头。 .*(/bin/|/home/).* 完成正则表达式
我正在寻找远程托管的 JPG 的尺寸、宽度和高度。我已经了解了如何通过下载完整图像来执行此操作。 但是,如果我可以通过仅下载足以获取此信息的方式来做到这一点,那将是理想的。 典型的图像大小为 200K
有没有办法让下面的代码: import traceback def log(message): print "%s: %s" %(traceback.extract_stack()[0:-1]
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
git show 显示了修订版中所做的所有更改。但是,它会打印出所有更改——而不仅仅是文件名。 git show --stat 只显示文件名,但它把它们截断了!有没有办法获得已更改文件名的完整列表?
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
当我在模板中调用我的模型 get_absolute_url 方法时,我想要一个绝对/完整的 url。在我的入门模型中,我有以下内容: def get_absolute_url(self): r
我正在使用 jQuery 1.5.1 这是我的代码: $('.cellcontent').animate({ left: '-=190'}, { easing: alert('start
我正在使用下面的方法删除条形图并使用新数据更新条形图,但这样做时出现了一个小故障/完整的图表消失 1 秒,直到加载新数据。但是是否可以通过仅增加/减少柱形而不实际消失图表来实现相同的目的。 d3.se
基于 this question 中的讨论,任何人都可以提供代码或代码链接,显示 NumericLiteralX 模块的完整实现(例如 this one )?我对 NumericLiteralX 模块
我的目标是检索网站的 html,并将其转换为可读的String。我下面的代码可以工作,但我遇到了一个技术问题:当我尝试检索 http://time.gov/HTML5 的 html 时,我在 andr
我是一名优秀的程序员,十分优秀!