我在颤振中有代码,我正在根据userId过滤数据。但我也希望根据基于日期的发送顺序对数据进行排序。就像我想先显示当天的数据,然后再显示前一个日期的数据一样。在消防店中它是可行的,而我发现很难用实时做到。下面是我添加查询以按 userId 过滤的代码片段。下面我也想根据日期添加排序数据(我正在保存时间戳(
_database.reference().child("node name here..").orderByChild("userId").
equalTo("my user id here...").once().then((snapshot )async{}
Firebase数据库首先返回最旧的数据,为了查看最新数据我建议您反转列表或同时将时间戳*保存为-1以使文档"最旧">
例
int time = DateTime.now().microsecondsSinceEpoch;
var timestamp = time * -1;
您可以按照此示例查询数据
return StreamBuilder(
stream: FirebaseDatabase.instance
.reference()
.child('node')
.orderByChild('userid')
.equalTo(userId)
.onValue,
builder: (BuildContext context, AsyncSnapshot<Event> snapshot) {
if (snapshot.hasData) {
if (snapshot.data.snapshot.value != null) {
Map<dynamic, dynamic> map = snapshot.data.snapshot.value;
List<dynamic> list = map.values.toList();
return ListView.builder(
itemCount: list.length,
padding: EdgeInsets.all(4.0),
itemBuilder: (BuildContext context, int index) {
return Column(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(13),
child: Container(
decoration:
BoxDecoration(color: Colors.blueGrey[100]),
child: ListTile(
title: Text(list[index]["title"]),
subtitle: Text(list[index]["text"]),
),
附言
监视控制台,查看是否获得创建索引的链接