이 스냅 샷이 모든 문서를 두 번 가져 오는 이유는 무엇입니까? 실룩 거리다

Aug 15 2020

간단한 것이 있습니다.

.snapshots()
  .listen((snapshot) {
      snapshot.documentChanges.forEach((doc) {       // Loop every document
        if (doc.type == DocumentChangeType.modified) { // If doc is modified
          print(doc.document.documentID);
        }
      });
  });

총 2 개의 문서가 있고 그 문서가 보관 된 컬렉션을 듣습니다. 변경된 문서 ID 만 원하지만 다음을 얻습니다.

I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew
I/flutter ( 2785): bdfDfgsDg4TsdfadvGew

왜 네 번? 2 번이면 foreach 루프가 있기 때문에 얻을 수 있습니다.

답변

SrilalSachintha Aug 15 2020 at 18:49

대부분의 경우 State가 구축 될 때마다 호출되는 루프입니다. 어떤 이유로 인해 상태가 2 번 재건 되었기 때문에 4를 얻습니다.

전체 코드를 보지 않고는 많은 것을 말할 수 없습니다. 그러나 위의 이유가 가장 일반적인 경우입니다.