inflearn logo
강의

Course

Instructor

Flutter Beginner Extension - Instagram Clone 2.0

firestore 호출 관련 문의 드립니다.

267

chohyunmook8708

2 asked

0

안녕하세요. firestore 호출 관련하여 문의 드립니다.

 

각 위젯에서 StreamBuilder로 QuerySnapshot이든 DocumentSnapshot이든 그때 그때 호출하고 있는데,

만약 하나의 Document 내 필드들이 여러개 존재한다면(DocumentSnapshot을 의미함) 화면에서는 각 text별로 노출되어야 한다고 가정을 했을때요

예) FirebaseFirestore.instance.collection('userInfo').doc(widget.user.email).snapshots();

이메일에 해당하는 userInfo에는 닉네임, 오늘의할말, 프로필사진 등 각각 정보가 들어있다고했을때

한번에 불러와서 변수에 각각 담아 저장하고있다가 각 text에 맞게 대입시켜주는게 효과적일듯 싶은데

그래서 최상위에서 화면로딩때 한번 호출후 변수에 담아놓고있다가 뿌려주고 싶습니다. (.get()사용이 아닌 .snapshots() 사용으로 실시간으로 변동되는사항이 있다면 변경이 되어야하겠죠)

제가 문의 드리고 싶은건

1-1. 각 text마다 스트림빌더위젯으로 호출하면 그만큼 firestore에 트랜잭션이 발생하여 과금도 두배로 발생되겠죠?

1-2. 그래서 효과적으로 firestore의 데이터를 호출하는 방법이 궁금합니다.

1-3. 방법도 여러가지가 있겠지만, 최상위트리에서 호출하는 방법이 있을까요?

 

firestore firebase ios documentsnapshot snapshot android Flutter 클론코딩

Answer 1

1

survivalcoding

1-1. 각 text마다 스트림빌더위젯으로 호출하면 그만큼 firestore에 트랜잭션이 발생하여 과금도 두배로 발생되겠죠?

1-2. 그래서 효과적으로 firestore의 데이터를 호출하는 방법이 궁금합니다.

1-3. 방법도 여러가지가 있겠지만, 최상위트리에서 호출하는 방법이 있을까요?

 

한번에 답변을 드리자면 최대한 적은 수의 스트림빌더를 유지하면 됩니다.

예를 들어 게시물, 팔로잉, 팔로워를 각각 스트림빌더로 감싸고 있다는 이들을 하나의 스트림빌더로 감싸버리는 거죠.

이런 식으로 가장 최상단에 스트림빌더가 오는 곳을 찾아서 배치하면 됩니다.

잘 모르겠으면 그먄 build() 메서드의 리턴을 스트림빌더로 시작해 버려도 되고요.

과금은 쓰기와 읽기 횟수에 따라서 과금이 되는 구조입니다. 여러번 호출되면 그만큼 과금이 더 되겠죠.

그리고 가급적 변수는 사용하지 않는 것이 좋습니다.

최대한 변경 가능성을 배재하는 형태로 개발하는 것이 오류 발생률을 낮추는 길입니다.

예를 들어 가급적이면 StatefulWidget보다 StatelessWidget으로 사용하고 가급적이면 변수보다 final 상수를 사용하는 것입니다.

0

chohyunmook8708

빠른답변 감사합니다~

파일 업로드와 완료까지 기다림 부분 질문입니다.

0

374

1

앱 자체 질문이요!

0

290

2

실행 오류 질문

0

321

3

파일이 안떠요..

0

330

2

혹시 Flutter - PHP - Mysql 강의도 해주시면 안될까요 ?

0

320

1

field does not exist within the DocumentSnapshotPlatform 에러 문의

0

972

1

data[document['email'] 사용법 변경 문의 및 following 함수 문의

0

243

1

파이어베이스 연동문제

0

334

2

프로젝트 세팅 에러

0

346

1

null safety 적용 후 feed_widget.dart 내 widget.document['likedUsers'] 문의드립니다.

0

628

1

image Picker 질문입니다.

0

196

1

flutter로 만든앱을 배포하고 싶은데, 결제시스템 관련 질문이 있습니다.

0

3777

1

firebasestore에서 data를 가져올 때 의문이 있습니다.

0

291

4

setData에 merge: true를 추가해주세요

1

182

0

fire base 설정 중에 sha1 지문을 불러오는 과정에서 오류가 발생합니다.

0

513

1

ios에서 실행

0

154

1

.where 사용법

0

185

2

search_page => detail_post_page 공부 하는도중 Error발생

0

259

1

progressindicator 재질문

0

269

2

DocumentSnapshot과 QuerySnapshot 차이점

0

2623

2

progressindicator 질문

0

253

2

flutter bloc패턴이나 디자인 패턴관련해서 강의계획 혹시 있으세요?

0

315

1

search_page.dart에서 다음과 같은 에러가 나옵니다.

0

620

2

login_page.dart 에서 다음과 같은 에러가 납니다.

0

556

6