如何根据flutter中的文档ID从单独列表中的集合中获取文档的每个值

时间:2020-02-05 14:55:30

标签: firebase flutter google-cloud-firestore

例如,在一个集合中,有10个或更多文档,我想根据DocumentsId创建该集合的列表,并且该列表仅包含值而不是键。

文档1->

    'Num1':'1',
    'Num2':'2',
    'Num3': '3',
    'Num4': '4',
    'Num5': '5',
    'Num6': '6',
    'Num7': '7',
    'Num8': '8',
    'Num9': '9',
    'Num10': '10',

文档2->

    'Num1':'1',
    'Num2':'2',
    'Num3': '3',
    'Num4': '4',
    'Num5': '5',
    'Num6': '6',
    'Num7': '7',
    'Num8': '8',
    'Num9': '9',
    'Num10': '10',

每个文档的列表如下 清单文件1 = [1,2,3,4,5,6,7,8,9,10] 清单文件2 = [11,12,13,14,15,16,17,18,19,20] 每个列表名称都是documentid

1 个答案:

答案 0 :(得分:1)

假设“集合”是一个简单的地图对象,您可以执行以下操作:

Map temp= { 'Num1':'1',
'Num2':'2',
'Num3': '3',
'Num4': '4',
'Num5': '5',
'Num6': '6',
'Num7': '7',
'Num8': '8',
'Num9': '9',
'Num10': '10',};
 var newList=temp.values.toList();

如果它是一个自定义对象,则可以使用map方法:

myobjectList.map((object)=>object.id).toList();

它将迭代集合中的所有元素,并将每个元素“映射”到所需的属性。

编辑:

从理论上讲,您不能更改变量名称,但是可以更改变量属性。 您所希望的可以通过以下方式实现:

List<List<int>> documents;
//access each document by its index
List document1 = [1,2,3,4,5,6,7,8,9,10]
documents[0]//would be equal to accessing  document1

或使用地图:

Map map={document.name:[1,2,3,4,5]};
map['document2']=[6,7,8,9,10];