質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

0回答

764閲覧

Flutter + Firebase Cloud firestoreでチャットルーム機能を実装したい

Yutaka.engin

総合スコア2

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2021/05/16 05:58

編集2021/05/16 07:31

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問