如何从firebase颤振中的文档中检索列表?

Posted

技术标签:

【中文标题】如何从firebase颤振中的文档中检索列表?【英文标题】:how to retrieve a list from a document in firebase flutter? 【发布时间】: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” 【参考方案1】:

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

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

【讨论】:

当我指定字段的索引时它可以工作:child: Text(snapshot.data!.docs[index].get('Cart')[0],它仍然设法检索第一个索引所有用户,而我想要当前活动用户中列表的所有数据!!? 您需要另一个列表视图构建器。

以上是关于如何从firebase颤振中的文档中检索列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用颤振从firebase实时检索数据

如何使用 StreamBuilder 将数据从 firebase firestore 检索到颤振中,并使用 ListView.builder 显示值?

如何使用颤振在firebase中进行查询?

如何在flutter中从firebase获取数据

将数据从 FireBase 检索到颤振项目时出错

如何从firebase检索多个数据到android中的列表视图?