我想检测用户是否使用 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
根据docs https://firebase.google.com/docs/reference/ios/firebaseauth/interface_f_i_r_user, providerData
是一个数组FIRUserInfo
结构。
您发布的 Android 代码(大部分)等效的 Swift 代码如下所示:
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
属性,所以你可以这样做:
if let providerID = FIRAuth.auth()?.currentUser?.providerID {
switch providerID {
default:
print("user is signed in with \(providerID)")
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)