首页 > 解决方案 > 在颤动中从firebase检索时间时出错?

问题描述

大家好,我正在尝试检索存储在 firebase 中的时间和日期,但我以毫秒为单位返回时间值。有人可以帮我解决这个问题。 在此处输入图像描述

这是我的代码

class _UserListState extends State<UserList> {
  final databaseReference = Firestore.instance;

  getList() async {
    databaseReference
        .collection("bookings")
        .getDocuments()
        .then((QuerySnapshot snapshot) {
      return snapshot.documents;
    });
  }

  @override
  Widget build(BuildContext context) {
    return 
      Scaffold(
        appBar: AppBar(title: Text(widget.isDelete? "Delete User": "User List"),backgroundColor: Colors.indigo,),
        body: ListView(
          padding: EdgeInsets.all(12.0),
          children: <Widget>[
            SizedBox(height: 20.0),
            StreamBuilder<QuerySnapshot>(
                stream: databaseReference.collection('bookings').snapshots(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    return Column(
                      children: snapshot.data.documents.map((doc) {
                        print(doc.data);
                        return ListTile(
                          title:  RichText(
                            text: TextSpan(children: [
                              TextSpan(text: "Boat_id : ${doc.data["boat_id"]}\n"),
                              TextSpan(text: "Grand Total : ${doc.data["grand_total"]}\n"),
                              TextSpan(text: "Number of Passengers : ${doc.data["no_of_passengers"]}\n"),
                              TextSpan(text: "Promo code : ${doc.data["promo_code"]}\n"),
                              TextSpan(text: "Date and Time(From) : ${doc.data["selected_from_date"]}\n"),
                              TextSpan(text: "Date and Time(To) : ${doc.data["selected_to_date"]}\n"),
], style: TextStyle(color: Colors.black)),

在此处输入图像描述

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


改变这个:

TextSpan(text: "Date and Time(From) : ${doc.data["selected_from_date"]}\n"),
TextSpan(text: "Date and Time(To) : ${doc.data["selected_to_date"]}\n"),

进入这个:

TextSpan(text: "Date and Time(From) : ${doc.data["selected_from_date"].toDate()}\n"),
TextSpan(text: "Date and Time(To) : ${doc.data["selected_to_date"].toDate()}\n"),

toDate()方法应该将 timeStamp 转换为普通日期,您可以在此处找到该方法:

https://github.com/flutter/plugins/blob/6cd8c677a21f1da0e78b20186be3ba0b0de08cef/packages/cloud_firestore/lib/src/timestamp.dart#L69


推荐阅读