如何使用Firebase通过Facebook,电子邮件或Google使用Swift检测用户是否已登录我的应用

时间:2016-08-20 17:21:41

标签: swift firebase firebase-authentication

我想检测用户是否使用Facebook或电子邮件等登录...

我找到了Android的答案,但我正在使用Swift for iOS进行编程,我不确定如何完全翻译代码。

android / java代码是:

for (UserInfo user:FirebaseAuth.getInstance().getCurrentUser().getProviderData()) {
if (user.getProviderId().equals("facebook.com")) {
System.out.println("User is signed in with Facebook");
  }
}

我试图翻译它,但我似乎无法弄清楚如何访问这些值。我不断得到一个内存地址。

这是我的快捷代码:

let authenticatedWith = FIRAuth.auth()?.currentUser?.providerData

1 个答案:

答案 0 :(得分:8)

根据docsroute是一个providerData结构数组。

您发布的Android代码的(大部分)等效Swift代码如下所示:

FIRUserInfo

请注意,if let providerData = FIRAuth.auth()?.currentUser?.providerData { for userInfo in providerData { switch userInfo.providerID { case "facebook.com": print("user is signed in with facebook") default: print("user is signed in with \(userInfo.providerID)") } } 属性也可以直接在providerID属性返回的FIRUser结构上使用,因此您可以这样做:

currentUser