gpt4 book ai didi

flutter - 在Flutter中映射流

转载 作者:行者123 更新时间:2023-12-03 03:33:09 26 4
gpt4 key购买 nike

我正在尝试将Firestore中的流映射到Flutter中的列表。我可以成功检索数据,但是当我将其传递给StreamBuilder时,它会收到null。

Stream<List<String>> getTeamMembers(String idSquadra) {
var res = teamsCollection.where('idSquadra', isEqualTo: idSquadra).snapshots().map(_playerNamesFromSnapshot);
return res;
}

List<String> _playerNamesFromSnapshot(QuerySnapshot snap) {
DocumentSnapshot doc = snap.documents[0];
var info = doc.data['infoGiocatori'];
var res = info.map((i) => "${i['nome']} ${i['cognome']} (${i['displayName']})");
print('res: $res');
return res;
}
此处res正确显示为 res: (Mario Rossi (MR1), Luigi Verdi (LV2)),但是当我尝试在 View 中访问它时,我得到 data: null
return StreamBuilder<List<String>>(
stream: dbService.getTeamMembers(dbService.currentUser.idSquadra),
builder: (context, snapshot) {
print('snapshot: $snapshot');
print('data: ${snapshot.data}');
return Container();
});
编辑:记录 print snapshot:
snaphot: AsyncSnapshot<List<String>>(ConnectionState.active, null, type 'MappedListIterable<dynamic, dynamic>' is not a subtype of type 'List<String>')

最佳答案

如果有人需要此功能,则可以通过pskink的建议找到问题所在。我缺少类型转换和toList()调用。
正确的代码:return info.map<String>((i) => '...').toList();

关于flutter - 在Flutter中映射流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62610755/

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