如何在flutter中以排序方式从firebase数据库中检索数据..当我将其检索为Map时出现问题
Posted
技术标签:
【中文标题】如何在flutter中以排序方式从firebase数据库中检索数据..当我将其检索为Map时出现问题【英文标题】:how to retrieve the data from firebase database in a sorted way in flutter.. something went wrong when I used retrieve it as Map 【发布时间】:2022-01-21 03:25:38 【问题描述】:import 'dart:convert';
import 'package:firebase_database/firebase_database.dart';
import 'package:lowmium/const/const.dart';
import 'package:lowmium/model/popular_item_model.dart';
import 'package:sortedmap/sortedmap.dart';
Future<List<PopularItemModel>> getMostPopular() async
var list = List<PopularItemModel>.empty(growable: true);
var source = await FirebaseDatabase.instance.ref().child('a').child('b').child(MOST_POPULAR_REF).orderByKey().once();
// Map<dynamic, dynamic> values = source.value;
Map<dynamic, dynamic> values = source.snapshot.value as Map; //firebase_database ver (9.0.4) <- the problem is here
values.forEach((key, value)
list.add(PopularItemModel.fromJson(jsonDecode(jsonEncode(value))));
);
return list;
如何在flutter中以排序方式从firebase数据库中检索数据,因为数据是以随机方式检索的
我尝试了 orderByKey(),但它不起作用 [就像它被忽略了一样]
另外,我尝试了 SortedMap Package(https://pub.dev/packages/sortedmap) 也没有成功
【问题讨论】:
【参考方案1】:这对我有用(FirebaseFirestore)
CollectionReference _collectionRef =
FirebaseFirestore.instance.collection('users');
QuerySnapshot querySnapshot = await _collectionRef.orderBy("dateOfBirth").get();
【讨论】:
抱歉,我使用的是 FirebaseDatabase 而不是 FirebaseFirestore ...无论如何 get() 也不起作用,同样的问题仍然存在以上是关于如何在flutter中以排序方式从firebase数据库中检索数据..当我将其检索为Map时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 中从 Firebase Auth 获取用户 ID?
如何从 Firebase Firestore 获取数据并将其存储在列表中以在颤振小部件中使用?
如何使用 Flutter 从 Firebase 获取当前活跃用户?