Lal*_*wat 6 dart firebase flutter google-cloud-firestore
我想从列表块中的 Firestore 读取数据我不想使用流构建器我想单独访问文档字段我尝试这个但不起作用
class ProductList extends StatelessWidget {
Stream<DocumentSnapshot> snapshot = Firestore.instance.collection("listofprods").document('ac1').snapshots();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.black)
),
child: ListTile(
title: Text(snapshot['name']),//here error
),
)
],
Run Code Online (Sandbox Code Playgroud)
As Per 2021 :
streamSnapshot.data.docs
Run Code Online (Sandbox Code Playgroud)
文档 对 doc 的更改。
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: FirebaseFirestore.instance
.collection('chats/XYSDa16jZBO5CUMwIk0h/messages')
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> streamSnapshot) {
return ListView.builder(
itemCount: streamSnapshot.data.docs.length,
itemBuilder: (ctx, index) =>
Text(streamSnapshot.data.docs[index]['text']),
);
},
));
}
Run Code Online (Sandbox Code Playgroud)
尝试这个:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class WeightChart extends StatefulWidget {
@override
_WeightChartState createState() => _WeightChartState();
}
class _WeightChartState extends State<WeightChart> {
dynamic data;
Future<dynamic> getData() async {
final DocumentReference document = Firestore.instance.collection("listofprods").document('ac1');
await document.get().then<dynamic>(( DocumentSnapshot snapshot) async{
setState(() {
data =snapshot.data;
});
});
}
@override
void initState() {
super.initState();
getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Weight'),
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
decoration: BoxDecoration(
border: Border.all(color: Colors.black)
),
child: ListTile(
title: Text(data['name']),//here error
),
)
]
)
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28019 次 |
最近记录: |