Ios 消除本地类与Firebase重命名类之间的歧义
我正在用Swift 3编写一个使用Firebase的应用程序。我创建了自己的类,名为Ios 消除本地类与Firebase重命名类之间的歧义,ios,swift,firebase,swift3,firebase-authentication,Ios,Swift,Firebase,Swift3,Firebase Authentication,我正在用Swift 3编写一个使用Firebase的应用程序。我创建了自己的类,名为User。我想同时使用该类和Firebase的User类。Firebase的User类过去被称为FIRUser,但在Firebase 4中被重命名(即,FIRUser.h带有FIR\u SWIFT\u NAME(User)) 现在我不知道如何独立使用它们。每当我使用User时,我的代码都认为我在谈论我的User类(这很有意义)。但是,当我不能再使用FIRUser时,我如何引用Firebase的用户类呢?实际上,您
User
。我想同时使用该类和Firebase的User
类。Firebase的User
类过去被称为FIRUser
,但在Firebase 4中被重命名(即,FIRUser.h
带有FIR\u SWIFT\u NAME(User)
)
现在我不知道如何独立使用它们。每当我使用
User
时,我的代码都认为我在谈论我的User
类(这很有意义)。但是,当我不能再使用FIRUser
时,我如何引用Firebase的用户
类呢?实际上,您可以只导入类用户
,这将使将来文件中对用户
的所有引用都指向您导入的类
如果您想更改其中一个类在单个文件中的调用方式,还可以在其中一个类上使用typealias
一般来说,最好将
用户
类重命名为更具体的类,遗憾的是:我在升级到Firebase 4时遇到了完全相同的问题;)我做了MacLean answer建议的事情,但选择了项目范围的解决方案
在Firebase.swift
文件中,我添加了以下typealias
:
//
// Firebase.swift
//
import FirebaseAuth
/// Class `FirebaseAuth.User` conflicts with `MyApp.User`.
typealias AuthUser = FirebaseAuth.User
然后,在项目的其他地方,我在使用Firebase类时只需使用AuthUser
,而我自己的类型只需使用User
。上述typealias
具有internal
可见性,因此可以在应用程序代码中使用
根据您的代码库大小,这可能比使用每个文件解决方案提供更好的折衷方案。是的,我就是这么想的。如果我想导入FIRUser类并在整个文件中使用它,我应该导入什么?我不能导入FIRUser,因为它已经不存在了。它在哪里?
导入类FirebaseAuth.FIRUser
。如果您查看它,您可以看到他们只是指定了User
作为带行的Swift名称,FIR\u Swift\u name(User)