Как переименовать объект Firebase "Пользователь" в Xcode? - PullRequest
2 голосов
/ 11 июля 2020

Я где-то читал, что можно было бы переименовать объект Firebase 'User' в Xcode. У меня есть несколько ссылок на классы / структуры User, и это вызывает много путаницы в моем коде, поскольку они называются одинаково (и я действительно не хочу переименовывать свои классы в что-то другое, кроме User). Возможна ли эта функция в Xcode? В идеале я бы хотел переименовать пользователя firebase в FireUser или что-то подобное.

1 Ответ

2 голосов
/ 11 июля 2020

Поскольку вы упомянули, что не хотите переименовывать свои собственные классы, существует несколько способов решения вашей проблемы.

Кстати, User class - это просто an NS_SWIFT_NAME класса FIRUser.

  1. Разблокируйте свой модуль, если вы установили Firebase через Cocoapods. Затем отредактируйте класс FIRUser.h, расположенный в Pods / FirebaseAuth / FIRUser.h. Либо вы удалите строку NS_SWIFT_NAME(User), либо переименуйте ее во что-нибудь другое.

  2. Если вы не хотите ничего редактировать в своем SDK Firebase, примите тот факт, что у него есть имя Swift User, а при использовании класса Firebase User, возможно, используйте его как FirebaseAuth.User. Он по-прежнему будет работать, рассмотрите пример кода ниже:

    override func viewDidLoad() {
         super.viewDidLoad()
    
         Auth.auth().signInAnonymously { (result, error) in
             let user = User(name: "fafa")
             let firUser = Auth.auth().currentUser
    
             if user is User {
                 print("ViewController: User is a local user")
             }
    
             if user is FirebaseAuth.User {
                 print("ViewController: User is not firebaseauth user")
             }
    
             if firUser is User {
                 print("ViewController: Firebase user is not user local")
             }
    
             if firUser is FirebaseAuth.User {
                 print("ViewController: Firebase user is firebaseauth user")
             }
    
         }
     }
    

печатает:

ViewController: User is a local user
ViewController: Firebase user is firebaseauth user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...