인프런 커뮤니티 질문&답변
firebase 모델 적용 후 ui화면 오류
해결된 질문
작성
·
947
0
//
home_screen.dart 파일입니다.
firebase에 입력된 값들을 적용하니까, ui화면은 다 사라지고 흰색 화면만 좌우로 무한스크롤 됩니다ㅠㅠ
안드로이드로 개발했습니다.
//
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:second/model/model_movie.dart';
import 'package:second/widget/box_slider.dart';
import 'package:second/widget/carousel_slider.dart';
import 'package:second/widget/circle_slider.dart';
class HomeScreen extends StatefulWidget {
  _HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
  Firestore firestore = Firestore.instance;
  Stream<QuerySnapshot> streamData;
  @override
  void initState() {
    super.initState();
    streamData = firestore.collection('movie').snapshots();
  }
  Widget _fetchData(BuildContext context) {
    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection('movie').snapshots(),
      builder: (context, snapshot) {
        if (!snapshot.hasData) return LinearProgressIndicator();
        return _buildBody(context, snapshot.data.documents);
      },
    );
  }
  Widget _buildBody(BuildContext context, List<DocumentSnapshot> snapshot) {
    List<Movie> movies = snapshot.map((d) => Movie.fromSnapshot(d)).toList();
    return ListView(
      children: <Widget>[
        Stack(
          children: <Widget>[
            CarouselImage(
              movies: movies,
            ),
            TopBar(),
          ],
        ),
        CircleSlider(
          movies: movies,
        ),
        BoxSlider(
          movies: movies,
        ),
      ],
    );
  }
  @override
  Widget build(BuildContext context) {
    return _fetchData(context);
  }
}
class TopBar extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.fromLTRB(20, 7, 20, 7),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
          Image.asset(
            'images/bbongflix_logo.png',
            fit: BoxFit.contain,
            height: 25,
          ),
          Container(
            padding: EdgeInsets.only(right: 1),
            child: Text(
              'TV 프로그램',
              style: TextStyle(fontSize: 14),
            ),
          ),
          Container(
            padding: EdgeInsets.only(right: 1),
            child: Text(
              '영화',
              style: TextStyle(fontSize: 14),
            ),
          ),
          Container(
            padding: EdgeInsets.only(right: 1),
            child: Text(
              '내가 찜한 콘텐츠',
              style: TextStyle(fontSize: 14),
            ),
          ),
        ],
      ),
    );
  }
}
답변 7
2
2
권태뽕
지식공유자
안녕하세요! 강의 들어주셔서 감사합니다.
앞선 질문에 대해 답변 못드리고 직접 해결하게 하여 죄송합니다ㅠㅠ
파이어베이스 관련 오류는 버전 지정 문제로 보이는데, 자동으로 너무 상위 버전 패키지를 가져오는 것 같습니다!
아래와 같이 버전 설정하여 다시 해보시겠어요?
firebase_core: ^0.2.5
0
0
0

이진희[학생](예술디자인대학 
질문자
dependencies:
  flutter:
    sdk: flutter
  carousel_slider:
  flutter_linkify:
  url_launcher:
  cloud_firestore:
  firebase_core:
0
0

이진희[학생](예술디자인대학 
질문자
[second] flutter pub get
Running "flutter pub get" in second...                          
Error on line 30, column 18 of pubspec.yaml: Invalid version constraint: Expected version number after "^" in "^3 + 0.4.4", got "3 + 0.4.4".
   ╷
30 │   firebase_core: ^3 + 0.4.4
   │                  ^^^^^^^^^^
   ╵
pub get failed (65;    ╵)
exit code 65






