В этом коротком руководстве мы узнаем, как отображать данные Firebase Firestore в списке SwiftUI с использованием шаблона MVVM.
Сложность: Начинающий | Легко | Нормальный | Испытывающий
Среда: Xcode 12, iOS 14, Firebase 7.1.0 и SwiftUI
Предпосылки: Некоторое знание Firebase console и cocoapods.
Создать новый проект
Откройте Xcode ›Шаблон приложения› Выберите интерфейс SwiftUI и вызовите свой проект SwiftUIList.
Настроить Firebase
Чтобы не делать эту статью слишком длинной, я быстро расскажу об интеграции Firebase. Если вы не знаете, как установить Firebase с помощью cocoapods, сначала ознакомьтесь с моим руководством и вернитесь на эту страницу.
Чтобы установить Firebase в приложении SwiftUI, перейдите в файл SwiftUIListApp.Swift, импортируйте Firebase и добавьте следующий код:
init () {
FirebaseApp.configure ()
}
Оттуда вы сможете запустить свое приложение, не столкнувшись с проблемами:
Создать модель
Идите вперед и создайте новую группу: назовите ее Models, из этой папки создайте новый файл swift и назовите его user. Внутри этого файла скопируйте / вставьте следующий синглтон:
Создайте ViewModel
Кроме того, создайте новую группу с именем ViewModels, из этой папки создайте новый файл Swift с именем userViewModel. Напишите в нем следующий код:
Этот файл будет вызывать Firebase и запрашивать данные из Firestore, это будет связь между нашей моделью, которую мы создали , и вид (список), который мы собираемся создать.
Теперь ваш проект должен выглядеть так:
Добавьте случайные данные в Firestore
Перейдите в Консоль Firebase и запустите новую базу данных в Firestore, выберите пока тестовый режим и запустите коллекцию с именем users и добавьте несколько документов, обратите внимание, ваша коллекция должна называться пользователей и ваш документ с полями имя и фамилия, иначе это не сработает.
Теперь мы готовы представить данные внутри нашего представления.
Создать представление
Перейдите в свой файл ContentView (он был создан при запуске проекта) и замените текущий код следующим:
Небольшое объяснение кода:
- ObservedObject - это ссылка на нашу ViewModel, которая отвечает за прослушивание базы данных Firestore.
- Список содержит 2 текста в каждой строке: имя и фамилия, полученные напрямую из Firestore и создают строки в соответствии с количеством документов, присутствующих в коллекции: здесь у нас есть 3 документа.
- onAppear () позволяет нам получать данные при запуске представления.
- NavigationView позволяет нам установить заголовок и управлять позже, чтобы отправить или представить это представление, в зависимости от конфигурации вашего проекта.
Запустите ваше приложение 🏃♂️
Вы можете запускать свое приложение, обновлять данные в Firestore, добавлять новые документы и видеть изменения в режиме реального времени!
Спасибо за внимание! Я всегда рад поболтать и поработать на [email protected]. Рассмотрите возможность подписки, чтобы получить неограниченный доступ к моим статьям и всему Medium через мою реферальную ссылку.
Репозиторий GitHub: