Tay*_*son 4 firebase swift 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");
}
}
Run Code Online (Sandbox Code Playgroud)
我试图翻译它,但我似乎无法弄清楚如何访问这些值.我继续得到一个内存地址.
这是我的快速代码:
let authenticatedWith = FIRAuth.auth()?.currentUser?.providerData
Run Code Online (Sandbox Code Playgroud)
根据文档,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)")
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,该providerID属性也可以直接在属性FIRUser返回的结构上使用currentUser,因此您可以这样做:
if let providerID = FIRAuth.auth()?.currentUser?.providerID {
switch providerID {
default:
print("user is signed in with \(providerID)")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2403 次 |
| 最近记录: |