gpt4 book ai didi

firebase - 如何在Flutter Firestore中查询2个文档并以列表形式返回?

转载 作者:行者123 更新时间:2023-12-03 04:20:30 24 4
gpt4 key购买 nike

Flutter和Dart世界的新手。
我正在尝试从一个集合( session )和另一个用户集合中查询,其中每个 session 只能有一个用户。我想获得每个 session ,添加用户数据并返回到我的Future >。
我具有用于 session 和用户的模型,并且能够提取两个 session 文档,然后能够使用用户信息来形成我的 session ,但是我没有运气返回正确的数据。似乎即时查询很好,但是我返回的数据以List < future < session >>而不是List < session >的形式出现。
session 模型

 Sessions(
{this.id,
this.title,
this.datetime,
this.userName,
this.userImage});

factory Sessions.fromJson(DocumentSnapshot doc, userName, userImage) {
String id = doc.documentID;
Map json = doc.data;
return Sessions(
id: id,
title: json['title'],
datetime: json['datetime'].toDate(),
userName: userName,
userImage: userImage,
);
}
Firebase查询
Future<List<Sessions>> getSessions() async {
// Getting Sessions
final result = await _liveSessionsRef
.where('isFeatured', isEqualTo: true)
.getDocuments();

// Querying from Users and returning Sessions with User Id and User Image
final data = result.documents.map((doc) async {
return await _userCollectionRef
.document(doc.data['id'])
.get()
.then(
(value) {
return Sessions.fromJson(doc, value.data['name'], value.data['image']);
},
);
}).toList();
}
return data;
}

最佳答案

Future<List<Sessions>> getSessions() async {
// Getting Sessions
final result = await _liveSessionsRef
.where('isFeatured', isEqualTo: true)
.getDocuments();

// Querying from Users and returning Sessions with User Id and User Image
final data = Future.wait(result.documents.map((doc) {
return _userCollectionRef
.document(doc.data['id'])
.get()
.then(
(value) {
return Sessions.fromJson(doc, value.data['name'], value.data['image']);
},
);
}).toList());
}
return data;
}

关于firebase - 如何在Flutter Firestore中查询2个文档并以列表形式返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62908712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com