前提・実現したいこと
Flutter と Cloud firestore で初めてネイティブアプリを作っています。
ユーザーがタップしたdocumentIDを取得したいです。
ルーム機能を実装をしており。Cloud firestoreのルームのコレクションを取得→Listviewでルーム一覧表示→
一覧の中から選んでユーザーがタップ→画面遷移しルームの投稿一覧を表示するようにしたいのですが、選んだルームコレクションのdocumentIDを画面遷移先に持っていく必要があると思いました。しかしdocumentIDの取得方法がが分からず数日検索しても答えが見つけられませんでした。
独学でFlutterを初めて2週間なのでコードは拙いですがどうが助けていただければと思います。
firestoreはルームコレクションにメッセージコレクションをネストしています。
該当のソースコード
Dart
1 2 3StreamBuilder( 4 stream: FirebaseFirestore.instance.collection('aurora rooms/ユーザーがタップしたルームのドdocumentIDにしたい/messages').orderBy('date', descending: true).snapshots(), 5 builder: (context, snapshot) { 6 if (snapshot.hasError) { 7 return Text('Something went wrong'); 8 } 9 10 if (snapshot.connectionState == ConnectionState.waiting) { 11 return Text('Loading'); 12 } 13 return ListView.builder( 14 reverse: true, 15 itemCount: snapshot.data.docs.length, 16 itemBuilder: (context, index) { 17 return Card( 18 shape: RoundedRectangleBorder( 19 borderRadius: BorderRadius.circular(10), 20 ), 21 child: Container( 22 padding: EdgeInsets.all(10), 23 child: Column( 24 crossAxisAlignment: CrossAxisAlignment.start, 25 children: [ 26 Text( 27 snapshot.data.docs[index].data()['date'], 28 style: TextStyle( 29 fontSize: 10, 30 color: Colors.grey 31 ), 32 ), 33 Text( 34 snapshot.data.docs[index].data()['message'], 35 style: TextStyle( 36 fontWeight: FontWeight.w500, 37 fontSize: 15, 38 color: Colors.black, 39 ), 40 ), 41 Text( 42 snapshot.data.docs[index].data()['email'], 43 style: TextStyle( 44 fontSize: 10, 45 color: Colors.grey 46 ), 47 ), 48 ] 49 ), 50 ), 51 ); 52 }, 53 ); 54 }, 55 ), 56
補足情報(FW/ツールのバージョンなど)
Flutter Ver. 2.0.6
cloud firestore Ver. ^1.0.7
あなたの回答
tips
プレビュー