Курс 12 урок 8 выдаёт ошибку

swift

#1

Проблема при попытке присвоить переменной user значение currentUser из метода viewDidLoad.
Текст ошибки: Cannot convert value of type ‘User’ to expected argument type ‘User’

Код:

override func viewDidLoad() {
        super.viewDidLoad()
        guard let currentUser = Auth.auth().currentUser else { return }
        // Вытаскиваем пользователя из БД и делаем его доступным вне метода ViewDidLoad, для использования в методе addTapped
        user = User(user: currentUser)      //в этой строке ошибка
        ref = Database.database().reference(withPath: "users").child(String(user.uid)).child("tasks")
    }

#2

#3

Вы решили проблему? Столкнулся с тем же


#4

Ответ из параллельной темы:

Вам Xcode подсказывает, где ошибка.
Firebase переименовал класс FIRUser в User. И у вас в проекте есть структура с именем User. Из-за этого у вас получился конфликт в пространстве имен. Переименуйте свою структуру и все будет работать.


#5

Спасибо. Но я задавал вопрос по верхней теме:

Проблема при попытке присвоить переменной user значение currentUser из метода viewDidLoad.
Текст ошибки: Cannot convert value of type ‘User’ to expected argument type ‘User’

Код:

override func viewDidLoad() {
    super.viewDidLoad()
    guard let currentUser = Auth.auth().currentUser else { return }
    // Вытаскиваем пользователя из БД и делаем его доступным вне метода ViewDidLoad, для использования в методе addTapped
    user = User(user: currentUser)      //в этой строке ошибка
    ref = Database.database().reference(withPath: "users").child(String(user.uid)).child("tasks")
}

#6

Ошибка выскакивает по причине того, что в проекте уже есть структура User, переименуйте ее и тогда конфликта не будет.


#7

Спасибо. Новичкам нужно все по 2 раза объяснять)