从Firestore获取字段图

时间:2020-05-07 00:06:03

标签: firebase flutter dart google-cloud-firestore

我正在尝试在文档中检索其中包含地图的地图字段。

世界 是由地图组成的JSON地图。

我想轻而易举地检索这些地图,以便将其解析为自定义对象。

enter image description here

我尝试过:

Stream<DocumentSnapshot> provideDocumentFieldStream() {
    return Firestore.instance
        .collection('regular-news')
        .document('us-en')
        .snapshots();
  }


  Future<NewsModel> getWorldNews() async {
    final NewsModel nm = NewsModel();
    List<Articles> list = List<Articles>();
    var articles = await Firestore.instance
        .collection("regular-news")
        .document("us-en")
        .get();

我无法在可变文章中检索地图。

试图使用这样的流:

Widget build(BuildContext context) {
    return Scaffold(
          appBar: AppBar(
            title: Text('Stream Test',
      body: new StreamBuilder(
        stream: Firestore.instance.collection('regular-news').document('us-en').snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return new Text("Loading");
          } else {
            return new Text(snapshot.data.data.toString());
          }
        }),

  );

    controller: scrollController;
  }

但是当我将其分配给字符串时,它会说:

不能将参数类型“ Map”分配给参数类型“ String”。dart(argument_type_not_assignable)

1 个答案:

答案 0 :(得分:1)

我设法将地图保存在动态值列表中:

List<Articles> list = List<Articles>();

    var val = await Firestore.instance
        .collection('collection')
        .document('document').get();

        LinkedHashMap<String, dynamic> data = val['fieldvalue'];

        List<dynamic> values = data.values.toList();

        for (int i = 0; i < values.length; i++) {
          list.add(Articles.fromJson(values[i]));

        }

然后,处理列表中的数据比处理文档快照更简单。