Я работаю с приложением iOS на основе раскадровки / объективной задачи с аутентификацией в Firebase.Я использую облачный firestore для сохранения пользовательских данных - возраста, пола и т. Д. Когда пользователь достигает приложения, я проверяю, вошел ли пользователь в систему или нет, следующий (аналогичный) код
FIRUser *firUser = [FIRAuth auth].currentUser;
if (firUser) {
// user logged in
// fetch updated user date from cloud firestore
} else {
// NO logged in user
}
Когда пользователь вошел в систему, ониможете перейти в другой раздел приложения, в противном случае они увидят страницу регистрации / входа.
Как это выглядит Переход к другим представлениям обычно означает, что я должен вызвать приведенный выше код, чтобы снова выяснить состояние входа в систему - что я не хочу делать.Я хотел бы создать пользовательский объект с зарегистрированным пользователем и данными из firestore и передать его между контроллерами представления.
Синглтон, казалось, отлично справлялся с работой и идеально подходил для моей ситуации, но я столкнулся с Тайфуном!
Первый вопрос: можно ли использовать этот фреймворк?Кажется, неактивные, но очень удивительные технологии.
Во-вторых, вот моя реализация - у меня есть сборка, которая выглядит следующим образом
- (AuthenticatedUser*)authenticatedUser {
return [TyphoonDefinition withParent:[self user] class:[AuthenticatedUser class] configuration:^(TyphoonDefinition* definition){
definition.scope = TyphoonScopeSingleton;
}];
}
И вот как я получаю экземпляр AuthenticatedUser
ModelsAssembly *modelsAssembly = [ModelsAssembly defaultAssembly];
// no default ModelsAssembly set
if( modelsAssembly == nil ){
modelsAssembly = [[ModelsAssembly new] activated];
[modelsAssembly makeDefault];
}
authenticatedUser = [modelsAssembly authenticatedUser];
получить один и тот же инициированный класс в разных представлениях кажется, что мне нужно сделать следующее:
- использовать TyphoonScopeSingleton в качестве DefinitionScope в сборке
- сделать сборку по умолчанию
Мне интересно, может ли кто-нибудь дать мне какое-то руководство по этому поводу.