firestore에서 List<String>을 받아오고 싶을 때
543
5 câu hỏi đã được viết
안녕하세요. 강의를 따라 오던 중 복수의 이미지 리스트 List<String>으로 업로드하고 또 읽어올 수 있을지 궁금증이 생겨 테스트를 하던 중 도저히 해결되지 않은 문제가 있어 질문 올립니다.(업로드는 성공했습니다.)
현재 강의 코드에서 imageUrl만 String에서 List<String>으로 바꿔 아래와 같이 수정했습니다.
class Post {
String id;
String userId;
String title;
List<String> imageUrls;
Post({
required this.id,
required this.userId,
required this.title,
required this.imageUrls,
});
factory Post.fromJson(Map<String, dynamic> json) {
return Post(
id: json['id'] as String,
userId: json['userId'] as String,
title: json['title'] as String,
imageUrls: json['imageUrls'] as List<String>,
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'userId': userId,
'title': title,
'imageUrls': imageUrls,
};
}
}
여기까진 문제가 없었는데, firestore에서 데이터를 불러와 List<Post>로 가공하는 부분에서 아래와 같이 에러가 발생하고 있습니다.
List<Post> posts = snapshot.data!.docs.map((el) => el.data()).toList();
// type 'List<dynamic>' is not a subtype of type 'List<String>' in type cast
다음처럼 fromJson 함수를 수정해보려 했는데 해결되지 않아 질문합니다 ㅠㅠ 해결 방법이 있을까요??
import 'dart:convert';
// ...
class Post {
// ...
factory Post.fromJson(Map<String, dynamic> jsonData) {
final imageUrls = json.decode(jsonData['imageUrls']).cast<String>().toList();
return Post(
id: jsonData['id'] as String,
userId: jsonData['userId'] as String,
title: jsonData['title'] as String,
imageUrls: imageUrls,
);
}(위와 같이 수정하면 type 'List<dynamic>' is not a subtype of type 'String' 이런 에러 메세지가 뜹니다.
Câu trả lời 1
0
imageUrls 는 firestore 쪽에 Array 로 저장한 것이지요?
그렇다면 as 로 캐스팅 대신에 List.from 생성자를 사용해 보시겠어요? (확인 못 했음)
만약 안 된다면 디버그 모드에서 json['imageUrls'] 내용이 어떤지 볼 필요가 있을 것 같습니다.
imageUrls: List<String>.from(json['imageUrls'])
과거 ai없을때 듣고 다시 듣는 중인데
1
54
1
40번 수업이 완료가 되지 않아요.
0
61
1
최신버전 firebase_ui_auth 할때 EmailAuthProvider 오류 잡는 방법
0
157
1
애뮬레이터로 main.dart를 실행하면 컴퓨터가 멈춥니다.
0
328
2
혹시 재촬영 계획이 있으신가요?
0
249
1
애뮬레이터 Intel HAXM 다운로드가 안돼요
0
556
2
에뮬레이터 홈화면
0
258
1
종속성 충돌 질문
0
341
1
plugin 중에서 에러 발생시 발생한 코드 위치에 바로 에러 표시해주는 기능 있을까요?
0
425
1
firebase option 오류
0
373
2
alt+enter 가 맥북에서는 option enter로 알고 있는데 단축키가 먹히지 않습니다 ㅜㅜ
0
1458
11
파이어베이스 연결시 갑자기 다른 오류가 발생했어요 ㅠㅠ
0
409
1
Failed assertion: line 246 pos 15: 'items.length >= 2': is not true.
0
1319
1
Firebase로 이메일 로그인 기능 구현
0
354
1
GridView에 데이터가 표시가 안됩니다.
0
297
1
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. 해결법을 모르겠습니다
0
6895
4
안드로이드 에뮬레이터 실행오류
1
1008
1
firebase 연동 중 오류 질문
0
467
1
05. AccountPage UI 작성강의 설명문의
0
370
1
firebase 이메일 로그인 설정 관련 오류 문의의 건
0
1087
1
기본위젯
0
2729
1
firebase에 upload 에러가 발생했습니다
0
1269
3
디버그 서명 인증서 SHA-1가 구해지지 않습니다.
1
317
1
비동기로 콜백을 받는다는 것이 무슨 뜻인가요?
2
413
1

