Firebase Flutter получить коллекцию My Conversations List - PullRequest
0 голосов
/ 22 января 2020

Итак, я создал приложение чата и пытаюсь восстановить разговоры, созданные пользователем с другими пользователями, я не уверен, правильно ли я это делаю?

вот код Есть способ, спасибо!

    class MessageLists extends StatelessWidget {
  final String currentUserId;
  final String userId;
  final String groupChatId;
  final String peerId;

  MessageLists({this.currentUserId, this.userId, this.groupChatId, this.peerId});

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: Firestore.instance
          .collection('messages')
          .getDocuments(),
      builder: (context, snapshot) {
        if (!snapshot.hasData) {
          return Center(
            child: LoadingWidget(),
          );
        }
        return ListView.builder(
          itemCount: snapshot.data.documents.length,
          itemBuilder: (contex, index) {
            return ListTile(
              leading: CircleAvatar(backgroundImage: AssetImage('assets/images/user.jpg'),),
              title: Text(currentUserId),
              subtitle: Text('Text Here'),
              trailing: Icon(Icons.arrow_right),
            );
          },
        );
      },
    );
  }
}

моя коллекция Firestore1 моя коллекция Firestore2

1 Ответ

0 голосов
/ 23 января 2020

Вы можете попробовать использовать StreamBuilder: https://api.flutter.dev/flutter/widgets/StreamBuilder-class.html

StreamBuilder(
  stream: Firestore.instance.collection('messages').snapshots(),
  builder: (BuildContext context, AsyncSnapshot snapshot) {
    if (snapshot.hasError) return Text('Error: ${snapshot.error}');
    switch (snapshot.connectionState) {
      case ConnectionState.waiting:
        return CircularProgressIndicator();
        break;
      default:
        final document = snapshot.data;
        print(document);
    }
  },
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...