【问题标题】:How to get the each value of documents from a collection in a seprate list according to the document id in flutter如何根据flutter中的文档ID从单独列表中的集合中获取文档的每个值
【发布时间】:2020-02-05 14:55:30
【问题描述】:

例如在一个集合中有 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

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案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];
    

    【讨论】:

    • 如何将每个列表的名称设置为文档id的名称
    • 我不明白您所说的每个列表的“名称”是什么。能否请您展示您尝试获取的数据结构,或您希望它包含的对象?
    • 其实我想实现每个文档都有id,我要创建的列表对于每个文档都是独立的,并且列表的名称与文档id相同
    猜你喜欢
    • 2021-01-30
    • 2020-12-05
    • 2021-12-16
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 2023-01-31
    • 2021-07-20
    • 2018-04-14
    相关资源
    最近更新 更多