我在Flutter中使用Firestore有一个聊天应用程序,并且有两个主要集合:
- chats,这是对键自动标识,并且有- 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每条消息的用户名(来自集合)。
我通常称其为客户端联接,尽管不确定Flutter是否具有特定的名称。
我已经找到了一种执行此操作的方法(我在下面发布了此方法),但想知道在Flutter中是否存在另一种/更好/更惯用的方法来进行这种类型的操作。
因此:在Flutter中,惯用的方式是按照上述结构查找每条消息的用户名吗?