ফায়ার স্টোর ব্যবহার করে আমার ফ্লাটারে একটি চ্যাট অ্যাপ রয়েছে এবং আমার দুটি প্রধান সংগ্রহ রয়েছে:
chatsযা স্বয়ং-ID- এর উপর অস্থির, আর রয়েছে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প্রতিটি বার্তার জন্য ব্যবহারকারীর নাম ( সংগ্রহ থেকে ) দেখাতে চাই ।
আমি সাধারণত কল করি যে ক্লায়েন্ট-সাইড যোগ দেয়, যদিও আমি নিশ্চিত নই যে ফ্লুটারের নির্দিষ্ট নাম রয়েছে কিনা।
আমি এটি করার একটি উপায় খুঁজে পেয়েছি (যা আমি নীচে পোস্ট করেছি) তবে বিস্মিত হোন যে এলোমেলোভাবে এই ধরণের অপারেশন করার জন্য আরও কোনও / আরও ভাল / আরও মূর্তিমান পদ্ধতি রয়েছে কিনা।
সুতরাং: উপরের কাঠামোর প্রতিটি বার্তার জন্য ব্যবহারকারীর নাম সন্ধানের জন্য ফ্লটারে কী অহংকার রয়েছে?