In this tutorial we will learn how to display firebase data in List
ContentView.swift// // ContentView.swift // DevSwiftUI // // Created by Cairocoders // import SwiftUI struct ContentView: View { @ObservedObject private var viewModel = userViewModel() var body: some View { NavigationView { List(viewModel.users) { user in VStack(alignment: .leading) { Text(user.name).font(.title) Text(user.surname).font(.subheadline) } }.navigationBarTitle("Users") .onAppear() { self.viewModel.fetchData() } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }User.swift
// // User.swift // DevSwiftUI // // Created by Cairocoders // import Foundation struct User: Identifiable { var id: String = UUID().uuidString var name: String var surname: String }UserViewModel.swift
// // UserViewModel.swift // DevSwiftUI // // Created by Cairocoders // import Foundation import FirebaseFirestore class userViewModel: ObservableObject { @Published var users = [User]() private var db = Firestore.firestore() func fetchData() { db.collection("users").addSnapshotListener { (querySnapshot, error) in guard let documents = querySnapshot?.documents else { print("No documents") return } self.users = documents.map { (queryDocumentSnapshot) -> User in let data = queryDocumentSnapshot.data() let name = data["name"] as? String ?? "" let surname = data["surname"] as? String ?? "" return User(name: name, surname: surname) } } } }DevSwiftUIApp.swift
// // DevSwiftUIApp.swift // DevSwiftUI // // Created by Cairocoders // import SwiftUI import Firebase @main struct DevSwiftUIApp: App { init() { FirebaseApp.configure() } var body: some Scene { WindowGroup { ContentView() } } }