前提・実現したいこと
FireStoreに保存してあるユーザのアドレスをリストを使って反映したいのですが、
データが表示されません。
リストで表示するためにはどのようにコードを改修すればいいのか、ご教授お願いします。
該当のソースコード
import Foundation struct UserModel: Identifiable{ var id = UUID().uuidString var userName: String var userEmail: String }
import Foundation import FirebaseFirestore import FirebaseAuth class LoadUserEmailController: ObservableObject{ @Published var userModels = [UserModel]() //メールアドレスを出力するための配列 private var db = Firestore.firestore() let userID = Auth.auth().currentUser?.uid //ユーザID func getUserEmail(){ db.collection("UserInfo").whereField("userID", isEqualTo: self.userID).addSnapshotListener{ (querySnapshot, error) in guard let documents = querySnapshot?.documents else{ print("No Documents") print(error.debugDescription) return } print("OK1") self.userModels = documents.map { (queryDocumentSnapshot) -> UserModel in let data = queryDocumentSnapshot.data() let userEmail = data["userEmail"] as? String ?? "" let userName = data["userName"] as? String ?? "" print("(self.userID)") //データ取得できているか確認→ここでは取得されていることを確認できている。 return UserModel(userName: userName, userEmail: userEmail) } } } }
import SwiftUI import FirebaseAuth import FirebaseFirestore struct UserEmailChangingView: View { @ObservedObject private var loadUserEmailController = LoadUserEmailController() var body: some View { List(loadUserEmailController.userModels, id: .id){user in Text(user.userEmail) //表示されない } .onAppear { self.loadUserEmailController.getUserEmail() } } } struct AddressChangingView_Previews: PreviewProvider { static var previews: some View { UserEmailChangingView() } }
補足情報(FW/ツールのバージョンなど)
下記サイトを参考に実装しました。
https://www.youtube.com/watch?v=f6u3AnOKZd0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。