消除Firebase中本地类的重命名类

时间:2017-11-11 20:32:20

标签: ios swift firebase swift3 firebase-authentication

我正在使用Firebase在Swift 3中编写应用程序。我创建了自己的名为User的班级。我想同时使用该课程和Firebase的User课程。 Firebase的User类过去被称为FIRUser,但在Firebase 4中重命名(即FIRUser.h FIR_SWIFT_NAME(User))。

现在我不知道如何独立使用每个。每当我使用User时,我的代码都会认为我正在谈论我的User类(这是有道理的)。但是,当我无法再使用User时,如何引用Firebase的FIRUser课程呢?

2 个答案:

答案 0 :(得分:2)

升级到 Firebase 4 时,我遇到了完全相同的问题;)我做了MacLean回答已经提出的建议但是选择了项目范围的解决方案。

Firebase.swift文件中,我添加了以下typealias

// 
// Firebase.swift
//
import FirebaseAuth

/// Class `FirebaseAuth.User` conflicts with `MyApp.User`.
typealias AuthUser = FirebaseAuth.User

然后,在项目的其他地方,我只使用AuthUser使用Firebase类,而User只使用我自己的类型。上述typealias具有internal可见性,因此可在您的应用代码中使用。

根据您的代码库大小,这可能比使用每个文件解决方案提供更好的权衡。

答案 1 :(得分:1)

您实际上只需import class User,这将使文件中User以后的所有引用都引用您导入的文件。

如果你想改变一个类在一个文件中被调用的方式,你也可能在其中一个上使用typealias

一般情况下,最好将User类重命名为更具体的类,但遗憾的是:<