cloud_firestore
を用いてデータベースから指定したドキュメントを取得しようとしています。
Dart
1void _getData(){ 2 final getData = await FirebaseFirestore.instance 3 .collection('users') 4 .doc(id) 5 .get(); 6 Map<String, dynamic> d = getData.data()!; 7 8 for (dynamic i in d["tags"]) { 9 ....... 10 } 11}
_getData()
が呼ばれるとFirestoreからデータが取得されます。
/users/{id}/tags
フィールドはMap変数です。
そのためfor文でtag一つ一つを取得しています。
しかし、for (dynamic i in d["tags"])
の部分でエラーが発生してしまいます。
_TypeError (type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable')
試したこと
こちらの記事に書かれている方法を試しました。
回避するにはこんなふうに書けば良い。
final Map<String,dynamic> map = new Map<String,dynamic>.from(snapshot.data["songs"]);
Map<String, dynamic> d = getData.data()!;
をMap<String, dynamic> d = Map<String, dynamic>.from(getData.data()!);
に変更しました。
しかしエラーは未だ発生します。
RunTimeType
Dart
1print("type: " + d["tags"].runtimeType.toString());
出力:
Dart
1I/flutter (18762): type: _InternalLinkedHashMap<String, dynamic>
どなたか回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。