我在 StreamProvider 上遇到问题,无法使用文档名称从 Firebase 中检索数据,请在下面查看我的脚本
class Coins {
Map mappedData = {};
String lastChange;
double usd;
// empty constructor
Coins();
// constructor for firebase databases
Coins.fromMap(Map<String, dynamic> map) {
lastChange = map['last_change'];
usd = map['usd'];
}
}
class FireStoreService{
Firestore _db = Firestore.instance;
Stream<List> getCoins(){
return _db.collection('values').snapshots()
.map(
(snap) => snap.documents.map(
(document) => Coins.fromMap(document.data)
).toList()
);
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
FireStoreService _db = FireStoreService();
return MultiProvider(
providers: [
StreamProvider(create: (BuildContext context) => _db.getCoins()),
],
child: MaterialApp(
theme: ThemeData.dark().copyWith(
primaryColor: Colors.lightBlue,
scaffoldBackgroundColor: Color(0xFF94BBA8)),
home: **PriceScreen**(),
));
}
}
在 PriceScreen 中,我定义了一个变量:
var coins = Provider.of<List<Coins>>(context);
现在如何使用文档名称获取数据?
如果文件名称例如 date_new 和old_sale
我如何使用->硬币['date_new'] ['lastChange'] 这样的文档名称来获取数据