У меня что-то вроде этого:
struct Main: View {
@ObservedObject var data: Data = Data()
@ObservedObject var profiles: Profiles = Profiles()
var body: some View {
TabView{
Discover().tabItem {
Image(systemName: "book")
Text("Discover")
}
// more tabs
}
}
}
Моя проблема в том, что эти data
и profiles
привязаны к базе данных и запускаются при запуске приложения. Когда приложение запускается и ни один пользователь не вошел в систему, доступ к данным не будет. Поскольку данные указаны пользователем, c содержимое в базе данных (Firestore).
Теперь при входе в систему данные не отображаются до перезапуска приложения, поскольку vars
уже были инициированы с пустым содержимое базы данных. Поскольку контент привязан к пользователю.
Id необходимо повторно инициировать их или «повторно загрузить» их, как только пользователь входит в систему или пользователь вошел в систему. Выполнение этого с помощью onAppear
не оптимально, поскольку это приведет к трафик базы данных c up.
Я использую Firestore в качестве базы данных.