Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 消除本地类与Firebase重命名类之间的歧义_Ios_Swift_Firebase_Swift3_Firebase Authentication - Fatal编程技术网

Ios 消除本地类与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的用户类呢?实际上,您

我正在用Swift 3编写一个使用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)