如何在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 如何获取节点的所有子节点

如何在 Flutter 中从 Firebase Auth 获取用户 ID?

如何从 Firebase Firestore 获取数据并将其存储在列表中以在颤振小部件中使用?

如何使用 Flutter 从 Firebase 获取当前活跃用户?

如何从 Flutter 应用程序中删除 firebase 用户? [复制]

在 Flutter 应用程序上过滤和排序 Firebase (Firestore) 数据