前提・実現したいこと
FireStoreから検索してデータを取得し、それをViewに表示させたかったのですが、
どうやらデータを繰り返し取得しているようで、画面に無限にデータが表示されてしまいます。
どのようにコーディングすれば解決するでしょうか。ご教示ください。
該当のソースコード
SwiftUI
1struct PhotoDetailBottomView: View { 2 @ObservedObject var observed = Observer() 3 var onePhoto: PhotoEntity 4 5 var body: some View { 6 self.observed.pickup(onePhoto: self.onePhoto) ←pickupのfunctionでFireStoreからデータを取得後、データを表示させようと思った 7 8 return VStack{ 9 ForEach(observed.status){ comment in 10 CommentView(oneComment: comment) 11 } 12 } 13 } 14} 15 16 17class Observer: ObservableObject{ 18 @Published var status = [Entity]() 19 20 func pickup(one: Entity) { 21 let db = Firestore.firestore() 22 23 db.collection("Theme").addSnapshotListener{(snap, error) in 24 if error != nil { 25 print("(String(describing: error?.localizedDescription))") 26 } 27 28 for i in snap!.documentChanges { 29 let id = i.document.documentID 30 let comment = i.document.get("comment") as? String ?? "" 31 let userName = i.document.get("userName") as? String ?? "" 32 let userImageURL = i.document.get("userImageURL") as? String ?? "" 33 self.status.append(CommentEntity(id: id, comment: comment, userName: userName, useImageURL: userImageURL)) 34 } 35 } 36 } 37} 38
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 13:35