Firestore'u kullanarak Flutter'da bir sohbet uygulamam var ve iki ana koleksiyonum var:
chats
Hangi otomatik kimlikleri üzerine kademeli ve vardırmessage
,timestamp
veuid
alanları.users
, anahtarlıdıruid
ve birname
alanı vardır
Uygulamamda messages
, bu widget ile mesajların bir listesini ( koleksiyondan) gösteririm:
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;
}
}
Ama şimdi users
her mesaj için kullanıcının adını ( koleksiyondan) göstermek istiyorum .
Flutter'ın bunun için belirli bir adı olup olmadığından emin olmasam da normalde istemci tarafı birleştirme olarak adlandırıyorum.
Bunu yapmanın bir yolunu buldum (aşağıda yayınladım), ancak Flutter'da bu tür bir işlem yapmanın başka / daha iyi / daha deyimsel bir yolu olup olmadığını merak ediyorum.
Peki: Flutter'da yukarıdaki yapıdaki her mesajın kullanıcı adını aramanın deyimsel yolu nedir?