How to rename Firebase 'User' object in Xcode?

Viewed 73

I had read somewhere it might be possible to rename the firebase 'User' object in Xcode. I have several references to User classes/structs and it is causing a lot of confusion within my code having them named the same (and I don't really want to rename my classes something other than User). Is this feature possible in Xcode? I'd ideally like to rename the firebase User to FireUser or something similar.

1 Answers

Since you've mentioned that you don't want to rename your own classes, there are still multiple ways to handle your issue.

By the way, User class is just an NS_SWIFT_NAME of FIRUser class.

  1. Unlock your pod, assuming you've installed Firebase through Cocoapods. Then edit the FIRUser.h class located in Pods/FirebaseAuth/FIRUser.h. Either you remove the line NS_SWIFT_NAME(User) or rename it to something else.

  2. If you don't want to edit anything in your Firebase SDK, accept the fact that it has a Swift name User, and when using Firebase's User class, perhaps use it like: FirebaseAuth.User. It will still work, consider the sample code below:

    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")
             }
    
         }
     }
    

prints:

ViewController: User is a local user
ViewController: Firebase user is firebaseauth user
Related