• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

firebase 모델 적용 후 ui화면 오류

20.07.23 04:52 작성 조회수 424

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(207207),
      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

Jmob님의 프로필

Jmob

2020.11.09

안녕하세요, cloud_firestore에서도 버전 문제로 프로젝트 빌드가 되지 않는것으로 보입니다... cloud_firestore 버전도 알려주실 수 있나요?

2

안녕하세요! 강의 들어주셔서 감사합니다.

앞선 질문에 대해 답변 못드리고 직접 해결하게 하여 죄송합니다ㅠㅠ

파이어베이스 관련 오류는 버전 지정 문제로 보이는데, 자동으로 너무 상위 버전 패키지를 가져오는 것 같습니다!

아래와 같이 버전 설정하여 다시 해보시겠어요?

firebase_core: ^0.2.5

0

답변주셔서 감사합니다^^

0

실제 쓰인 패키지입니다.

0

dependencies:
  flutter:
    sdkflutter
  carousel_slider:
  flutter_linkify:
  url_launcher:
  cloud_firestore:
  firebase_core:

0

ui 화면 백지화는 고쳤는데 firebase와 연동이 안됩니다ㅠㅠ 

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