मेरे पास फ़्यूचर का उपयोग करके फ़्लटर में एक चैट ऐप है, और मेरे पास दो मुख्य संग्रह हैं:
chats
है, जो ऑटो आईडी पर keyed, और हैmessage
,timestamp
औरuid
खेतों।users
, जिस पर कुंजी लगाई गई हैuid
, और एकname
क्षेत्र है
अपने ऐप में मैं messages
इस विजेट के साथ संदेशों की एक सूची दिखाता हूं ( संग्रह से):
class ChatList extends StatelessWidget {
@override
Widget build(BuildContext context) {
var messagesSnapshot = Firestore.instance.collection("chat").orderBy("timestamp", descending: true).snapshots();
var streamBuilder = StreamBuilder<QuerySnapshot>(
stream: messagesSnapshot,
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> querySnapshot) {
if (querySnapshot.hasError)
return new Text('Error: ${querySnapshot.error}');
switch (querySnapshot.connectionState) {
case ConnectionState.waiting: return new Text("Loading...");
default:
return new ListView(
children: querySnapshot.data.documents.map((DocumentSnapshot doc) {
return new ListTile(
title: new Text(doc['message']),
subtitle: new Text(DateTime.fromMillisecondsSinceEpoch(doc['timestamp']).toString()),
);
}).toList()
);
}
}
);
return streamBuilder;
}
}
लेकिन अब मैं users
प्रत्येक संदेश के लिए उपयोगकर्ता का नाम ( संग्रह से) दिखाना चाहता हूं ।
मैं आम तौर पर कहता हूं कि एक क्लाइंट-साइड शामिल हो, हालांकि मुझे यकीन नहीं है कि फ़्लटर का कोई विशिष्ट नाम है।
मुझे ऐसा करने का एक तरीका मिला है (जो मैंने नीचे पोस्ट किया है), लेकिन आश्चर्य है कि फ़्लटर में इस तरह के ऑपरेशन को करने के लिए एक और / बेहतर / अधिक मुहावरेदार तरीका है।
तो: उपरोक्त संरचना में प्रत्येक संदेश के लिए उपयोगकर्ता का नाम देखने के लिए फ़्लटर में मुहावरेदार तरीका क्या है?