StreamProvider和Firebase,使用文档名称获取数据-Flutter

时间:2020-07-24 19:14:34

标签: flutter firebase-realtime-database

我在 StreamProvider 上遇到问题,无法使用文档名称从 Firebase 中检索数据,请在下面查看我的脚本

硬币类从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()
        );

  }
}

下面是main.dart->我在Multiprovider中使用了ProviderStream

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']

这样的文档名称来获取数据

0 个答案:

没有答案