実現したいこと
FirebaseのCloudStoreからデータを取ってきて画面に表示させたいのですが、シミュレーター起動時に画面に表示されません。ただ、一度ホーム画面に戻った後や、異なるタブにいった後に、再度画面を開くとデータが表示されるようになります。
この現象はどうして起こるのか、どうしたら直るのかご教示ください。
以下の簡単なコードにして試したら一回成功しましたが、取得するデータを増やすコードに変えるとまた同じ現象が発生してしまいました。
発生している問題・エラーメッセージ
エラーメッセージは起きないが、シミュレーター起動時に画面に表示されない
該当のソースコード
【Content画面】 import SwiftUI struct ContentView: View { var body: some View { HomeView() } } 【HomeView画面】 struct HomeView: View { @ObservedObject var observed = Observer() var body: some View { VStack{ ScrollView{ HStack{ ForEach(observed.status){i in Text("/(i.title)") } } } } } } 【Observer画面】 import Foundation import FirebaseFirestore class Observer: ObservableObject{ @Published var status = [PhotoEntity]() init() { let db = Firestore.firestore() db.collection("Theme").document("landscape").collection("Photos").addSnapshotListener{(snap, error) in if error != nil { print("(String(describing: error?.localizedDescription))") } for i in snap!.documentChanges { if i.type == .added{ let id = i.document.documentID let title = i.document.get("title") as? String ?? "" let userName = i.document.get("userName") as? String ?? "" self.status.append(PhotoEntity(id: id, title: title, userName: userName)) } } } } } struct PhotoEntity: Identifiable{ var id: String var title: String var userName: String }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。