如何从 firebase flutter 中的文档中检索列表?
how to retrieve a list from a document in firebase flutter?
我想检索文档中的列表并通过 listview.builder
显示它
Cart:[ 0 "default", 1 "bugatti chiron", 2 "examp" 3 "bugatti veron", 4 "examp", 5 "bugatti chiron 20" ]
so the above array is what i want to retrieve and show in a listview.
and the class below is how i tried to implement it but failed
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);
})
]);
},
),
);
}
}
使用 get()
,获取用户地图中的特定字段,如下所示:
child: Text(snapshot.data!.docs[index].get('Cart'),
我想检索文档中的列表并通过 listview.builder
显示它Cart:[ 0 "default", 1 "bugatti chiron", 2 "examp" 3 "bugatti veron", 4 "examp", 5 "bugatti chiron 20" ]
so the above array is what i want to retrieve and show in a listview.
and the class below is how i tried to implement it but failed
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);
})
]);
},
),
);
}
}
使用 get()
,获取用户地图中的特定字段,如下所示:
child: Text(snapshot.data!.docs[index].get('Cart'),