我正在使用 Flutter,我想从我的实时数据库 Firebase 检索一些数据。我的实时数据库 Firebase 中存储了以下数据:
如何从中获取每一条信息?例如,我只想得到“Tom”这个名字?
阅读firebase文档您可以看到我们如何从RTDMS firebase读取和写入数据。
static Future<List<PostModel>> getPost() async {
Query postsSnapshot = await FirebaseDatabase.instance
.reference()
.child("posts")
.orderByKey();
print(postsSnapshot); // to debug and see if data is returned
List<PostModel> posts;
Map<dynamic, dynamic> values = postsSnapshot.data.value;
values.forEach((key, values) {
posts.add(values);
});
return posts;
}
您可以在构建小部件时或执行任何操作后调用此函数
FirebaseDatabase.instance.ref("users").onValue.listen((event) {
final data =
Map<String, dynamic>.from(event.snapshot.value as Map,);
data.forEach((key, value) {
log("$value");
});
});
如果 RTDB 中的数据是
Object
,您可以使用从结果对象到 Map?
的类型转换,然后使用 dart 集合进行转换 .map()
。这里的例子:
final resultDataRealtimeDatabase = item.value as Map?;
final Map<String, dynamic> userData = resultDataRealtimeDatabase.map((key, value) => MapEntry(key as String, value);
final userModel = UserModel.fromJson(userData);