为什么未在Cloud Firestore中按顺序添加文档?

解码

码:

CollectionReference reference = Firestore.instance.collection("users");
Map<String, dynamic> dummyData = {};

List elements = List.generate(5, (index) => index);
Future.forEach(elements, (element) async {
  dummyData["key"] = "$element";
  await reference.add(dummyData);
});

如您所见,每次添加我都在等待。但是我在Firebase控制台上看到的数据是按以下顺序排列的:

randomId:
  key: 3
randomId:
  key: 4
randomId:
  key: 1
randomId:
  key: 0
randomId:
  key: 2

但是应该是:

randomId:
key: 4
randomId:
key: 3
randomId:
key: 2
randomId:
key: 1
randomId:
key: 0

谁能告诉我我在做什么错,我是Flutter和Firebase的新手。


编辑:

我不是在获取数据,而是在服务器上写入数据。数据应该按照我在代码中编写的顺序来编写,不是吗?

道格·史蒂文森

您在Firebase控制台中看到的文档顺序基于添加文档时给定的唯一文档ID。由于您使用的是add(),因此SDK为其提供了随机文档ID。因此,文档将以随机顺序出现在控制台中。这是预料之中的。这里没有错。

当您查询文档时,如果希望它们以其他顺序排列,则必须在查询中指定。听起来您可以使用该key字段。但是,您应该存储一个数字而不是一个字符串,这样,如果您想要一个升序的数字排序,则排序顺序才有意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么表未在phpmyadmin中创建

为什么未在Express中设置cookie?

为什么表未在mysql中更新

在Firestore中按顺序增加字段的最佳实践是什么?

为什么未在XAML中添加ListBoxItems的样式?

为什么新添加的项目未在模板中呈现?

为什么此Javascript代码未在表中添加行

在 Firestore 中按文档顺序获取定位

为什么我的文档页面不按顺序排列?

为什么不删除Cloud Firestore数据库中的文档?

将文档添加到Cloud Firestore中的集合中,而不会覆盖以前的文档Flutter

为什么文件中的行未在Java中打印

在Dart的Cloud Firestore中添加文档后如何获取文档ID

在 Cloud Firestore 中,如何添加具有显式文档 ID 的文档

新更新后,如何在 Dart 的 Cloud Firestore 中添加文档后获取文档 ID

为什么BootStrap TokenField输入未在POST请求中传递?

为什么get方法未在reqwest中返回Response对象?

为什么我的通知事件未在Cordova中触发?

为什么未在JavaScript中悬挂回调函数?

为什么未在Google Maps(JavaScript)中显示此SVG?

为什么CSS类未在复选框中应用?

为什么ngOnChanges()函数未在angular 2中触发?

为什么此错误未在Redux Action的Catch中结束?

为什么未在/ etc /目录中创建文件

为什么块作用域最初未在JavaScript中实现?

为什么未在Android Studio中解析活动名称

为什么未在定义中列出“ NOT(<search_condition>)”?

为什么AVD Manager选项未在Android Studio中显示

为什么状态未在nextjs中解析为变量