作者:遁高攀_179 | 来源:互联网 | 2022-12-24 13:16
我需要在for ...循环之前将数据添加到Map或HashMap,在for ...循环期间将数据添加到Map,然后在循环之后创建包含所有数据的文档.
在Java for Android中我用过:
Map createDoc = new HashMap<>();
createDoc.put("type", type);
createDoc.put("title", title);
for (int x = 0; x
我的问题是,我如何创建文档并立即获取它的ID然后更新/合并其余的数据?或者有没有办法将数据添加到Dart中的Map?
我在Dart找到的唯一一件事是:
Map stuff = {'title': title, 'type': type};
并在for ...循环中:
stuff = {'docRef $x': docId};
并在for ...循环之后:
Firestore.instance.collection('workouts').add(stuff);
这将创建一个仅包含for ...循环中最后一个条目的文档.
我还导入了dart:collection来使用HashMap,但它不会让我使用
Map newMap = new HashMap<>();
我收到错误:"A value of type 'HashMap' can't be assigned to a variable of type 'Map'
"
先感谢您!
1> matanlurey..:
与您在Java中为Dart编写的代码相同的代码块是:
Map createDoc = new HashMap();
createDoc['type'] = type;
createDoc['title'] = title;
for (int x = 0; x
当然,Dart具有类型推断和集合文字,因此我们可以使用更简洁的语法.让我们从上面写出完全相同的东西,但是还有更多的Dart(2)成语:
var createDoc = {};
createDoc['type'] = type;
createDoc['title'] = title;
for (var x = 0; x
好吧,那更好,但仍然没有使用Dart提供的所有东西.我们可以使用map literal而不是再写两行代码,我们甚至可以使用字符串插值:
var createDoc = {
'type': type,
'title': title,
};
for (var x = 0; x
我还导入了dart:collection来使用HashMap,但它不会让我使用
Map newMap = new HashMap<>(); I get the error: `"A value of type 'HashMap' can't be assigned to a variable of type
"Map'`"
new HashMap<>
Dart中没有这样的语法.类型推断在没有它的情况下工作,所以你可以写Map map = new HashMap()
,或者像上面的例子一样,var map = {}
甚至更好,var map = { 'type': type }
它将根据键和值为你键入地图.
我希望有所帮助!