前提・実現したいこと
flutterで下記の該当ソースコードの5行目などの
if (doc.data()...
のdataがnullチェックのエラーが出ているので解決したい。
発生している問題・エラーメッセージ
error: The method 'data' can't be unconditionally invoked because the receiver can be 'null'.
該当のソースコード
Dart
ソースコードstatic Future<List<TalkRoom>?> getRooms(String myUid) async { final snapshot = await _firestoreInstance.collection('room').get(); List<TalkRoom> roomList = []; // 自分のUidの選別 await Future.forEach(snapshot.docs, (doc) async { // 自分のUidかどうかのチェック if (doc.data()['joined_user_ids'].contains(myUid)) { String? yourUid; doc.data()['joined_user_ids'].forEach((id) { if (id != myUid) { yourUid = id; return; } }); // 相手のプロフィール情報の取得 User? yourProfile = await getProfile(yourUid!); TalkRoom room = TalkRoom(doc.id, yourProfile!, doc.data()['lastMessage'] ?? ''); roomList.add(room); } }); print(roomList.length); return roomList; }
試したこと
下記の通り?をつけnullチェックをしました。
if (doc?.data()...
しかし今度は下記エラーが出てしまったので
error: The method 'data' isn't defined for the type 'Object'.
5行目の下記の通りdocの前にDocumentSnapshotを付けたのですが解決できていない状況です。
await Future.forEach(snapshot.docs, (DocumentSnapshot doc) async {...
恐縮ですが、上記の解決方法が分からずにいるのでご教示いただきたいです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
まだ回答がついていません
会員登録して回答してみよう