如何在flutter上从Firebase获取String数据数组?

时间:2019-12-27 15:50:49

标签: firebase flutter google-cloud-firestore

他们正在尝试从抖动中获取修复程序及其位置,但是我得到的是一个包含所有数据的字符串,而不是它们的位置,我正在使用BLoC

Firebase: 如您在firebase中看到的,我有一个数据数组 enter image description here

cloud_firestore_api.dart:

 Future<QuerySnapshot> getCites() async {
return await _db
    .collection('type_cites').getDocuments();
 }

cloud_firestore_repository.dart:

 Future<QuerySnapshot>getCites() => _cloudfireStoreAPI.getCites();

user_bloc.dart:

Future<QuerySnapshot>getCites()=> _cloudFirestoreRepository.getCites();

这是我发送给我的函数的地方,得到的不是字符串而是数组:

 import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:generic_bloc_provider/generic_bloc_provider.dart';
import 'package:/User/bloc/userbloc.dart';

class DatePickerScreen extends StatefulWidget {
  UserBloc userBloc;
  QuerySnapshot snapshot;

  @override
  State<StatefulWidget> createState() {
    return _DatePickerScreen();
  }
}

class _DatePickerScreen extends State<DatePickerScreen> {

  @override
  Widget build(BuildContext context) {
    widget.userBloc = BlocProvider.of<UserBloc>(context);
    widget.userBloc.getCites().then((result) {
      widget.snapshot = result;

    });
    return  RaisedButton(
          onPressed: () {
            print( widget.snapshot.documents[0].data);
          },
        );


  }
}

输出:

enter image description here

,如果我打印出它带来的尺寸:

enter image description here

当我实际上将其放置在具有3个位置且其大小差为3而不是1的布置中时, 有什么方法可以从Firebase正确获取修复程序?

1 个答案:

答案 0 :(得分:1)

使用以下命令打印引用的长度。

var documents =
    (await Firestore.instance.collection('collection').getDocuments())
        .documents;
print(documents[0].data['cites'].length);

用集合名称替换collection