Flutter开发中如何从Firebase实时数据库仅获取时间范围字段

Flutter 实现Firebase Realtime Database仅查询时间范围字段方案
Firebase Realtime Database 可通过select方法指定仅返回需要的字段,避免拉取冗余的expert id等无关数据,具体实现如下:
- 第一步:确认
pubspec.yaml中已添加依赖
dependencies: flutter: sdk: flutter firebase_database: ^10.3.2 # 可替换为当前最新稳定版本
执行flutter pub get完成依赖安装。
- 第二步:实现指定字段查询逻辑
import 'package:firebase_database/firebase_database.dart'; Future<List<String>> fetchTimeSlots() async { List<String> timeSlots = []; // 替换为你实际存储时间数据的父节点路径 DatabaseReference dbRef = FirebaseDatabase.instance.ref("你的数据父节点路径"); // 将下方'time_slot'替换为你数据库中存储'9:00 - 10:00'这类值的字段键名 Query query = dbRef.select(['time_slot']); DatabaseEvent event = await query.once(); if (event.snapshot.exists) { Map<dynamic, dynamic> snapshotData = event.snapshot.value as Map<dynamic, dynamic>; for (var entry in snapshotData.values) { if (entry['time_slot'] != null) { timeSlots.add(entry['time_slot'].toString()); } } } return timeSlots; }
该查询只会返回你指定的时间范围字段,不会拉取expert id等其他未声明的字段。
内容的提问来源于stack exchange,提问作者Ankitha Anil
相关产品推荐
相关产品推荐

