-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
StreamBuilder 안에 에러입니다
22.03.11 16:37 작성 조회수 271
0
어떻게 해결하면 되나요?
답변을 작성해보세요.
0
권승민
2022.03.14
파이어 스토어 패키지가 업데이트되어 문법적으로 많은 부분이 변경되었습니다.
최신 버전을 통한 데이터 획득은 다음의 코드를 이용하여 사용하실 수 있습니다.
return Scaffold(
appBar: AppBar(
title: Text('firebase'),
),
body: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance.collection('test').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if (!snapshot.hasData) return LinearProgressIndicator();
return ListView(
children: snapshot.data!.docs.map((DocumentSnapshot document) {
Map<String, dynamic> data = document.data()! as Map<String, dynamic>;
return Text(data['name']);
}).toList(),
);
},
),
);
해당 강의에서는 0.13.7 버전을 이용하기에 최신 버전으로 강의를 수강하실 경우 많은 어려움이 발생할 수 있습니다.
가능한 다음의 파일을 다운로드 하셔서 강의와 동일한 버전으로 패키지 설치를하여 수강하시는 걸 추천드립니다.
감사합니다.
0
권승민
2022.03.14
파이어베이스를 이용하기 위해서 firebase 데이터베이스에 test 컬렉션에 test1 문서와 name에 admin이라는 데이터를 넣었습니다.
코드에 작성한 이름과 저장된 데이터의 이름이 일치하는지 확인이 필요할 것 같습니다.
0
권승민
2022.03.14
혹 플러터와 클라우드 파이어 스토어 패키지의 버전이 몇 버전이실까요?
해당 강의는 1.17.5 버전 플러터와 0.13.7 버전 클라우드 파이어 스토어 패키지 기준으로 구성되어 있습니다.
패키지 버전 변경에 따라 코드를 변경해야 할 것 같습니다.
그리고 파이어베이스에 저장된 값을 보내주실 수 있으실까요
데이터가 다르게 기록되서 발생할 수 있는 문제로 보입니다.
다음의 정보들을 부탁드립니다.
1. 플러터와 패키지 버전
2. 파이어베이스에 저장된 값
0
권승민
2022.03.14
안녕하세요 강사 권승민입니다.
원래 새로운 프레임워크를 공부하실 때에는 시행착오가 있으실 수 밖에 없습니다!
안되시는 부분이 있으시더라도 걱정하지 마시구 최대한 수월하게 해결해드릴 수 있도록 노력하겠습니다
질문해주신 부분은 오류 발생 코드를 다음으로 변경 부탁드립니다.
return Text(snapshot.data)
감사합니다.
0
권승민
2022.03.14
안녕하세요 강사 권승민입니다.
ㅤ
보내주신 사항 확인했습니다.
현재 데이터가 Object가 아닌 Map을 반환해야 하는 것으로 보입니다.
오류가 발생하는 부분을 다음과 변경하여 출력되는 내용을 보내주시면 문제 해결에 도움이 될 것 같습니다.
아래의 코드를 통해 현재 snapshot에 어떤 데이터가 들어있는지 추가로 보내주시면 감사하겠습니다.
return Text(snapshot.data['name']) → return Text(snapshot.data)
답변 5