我想检测用户是否使用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
答案 0 :(得分:8)
根据docs,route
是一个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