【问题标题】:how to retrieve a list from a document in firebase flutter?如何从firebase颤振中的文档中检索列表?
【发布时间】:2021-10-09 20:30:15
【问题描述】:

我想检索文档中的列表并通过 listview.builder 显示它

Cart:[ 0 "default", 1 "bugatti chiron", 2 "examp" 3 "bugatti veron", 4 "examp", 5 "bugatti chiron 20" ]

所以上面的数组是我想要检索并在列表视图中显示的。

下面的课程是我尝试实现但失败的方式

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class cart extends StatefulWidget {
  @override
  _cartState createState() => _cartState();
}

class _cartState extends State<cart> {
  FirebaseAuth auth = FirebaseAuth.instance;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: StreamBuilder<QuerySnapshot>(
        stream: FirebaseFirestore.instance.collection('user').snapshots(),
        builder: (context, snapshot) {
          return Column(children: [
            snapshot.hasData
                ? Expanded(
                    child: ListView.builder(
                    itemBuilder: (BuildContext context, int index) {
                      return Column(children: [
                        InkWell(
                            onTap: () {},
                            child: Card(
                              child: Text(snapshot.data!.docs[index][Cart]),
                            )),
                      ]);
                    },
                    itemCount: snapshot.data!.docs.length,
                  ))
                : Center(
                    child: CupertinoActivityIndicator(),
                  ),
            TextButton(
                child: Text('checkout'),
                onPressed: () {
                  FirebaseFirestore.instance
                      .collection('user')
                      .doc(auth.currentUser!.uid);
                })
          ]);
        },
      ),
    );
  }
}

【问题讨论】:

  • 嗨,请发布您的 Firestore 数据库结构,以及当您说“下面的课程是我尝试实现它但失败的方式”时,究竟是什么失败了?
  • 好吧:用户 > XE4nqk1hVnYlDjn2Y5cDMQ3cJdi1 > 电子邮件“example@gmail.com”名称“Moe”密码“11223344”uid“XE4nqk1hVnYlDjn2Y5cDMQ3cJdi1”购物车0“默认”1“ex”2“bugatti veron”3 “前”4“布加迪 chiron 20”5“布加迪 chiron 40”

标签: firebase flutter listview google-cloud-firestore


【解决方案1】:

使用get(),获取用户地图中的特定字段,如下所示:

child: Text(snapshot.data!.docs[index].get('Cart'),

【讨论】:

  • 当我指定字段的索引时它可以工作:child: Text(snapshot.data!.docs[index].get('Cart')[0],它仍然设法检索第一个索引所有用户,而我想要当前活动用户中列表的所有数据!!?
  • 您需要另一个列表视图构建器。
猜你喜欢
  • 2021-04-14
  • 2020-04-07
  • 1970-01-01
  • 2019-12-31
  • 2020-08-04
  • 2019-06-11
  • 2020-08-05
  • 1970-01-01
  • 2020-10-20
相关资源
最近更新 更多