Swift 一个函数中的多种注销方法
Multiple sign out methods in one function in Swift
我想知道我是否可以在一个函数调用中组合使用两种注销方法(Facebook 和 Google),或者这是否是一种好的做法?我有一个注销按钮,当 Facebook 用户注销时从 Facebook 注销,当然当 Google 用户登录时从 Google 注销。或者我应该在注销功能中创建一个条件吗?感谢您提供的所有帮助!
// handle sign out function
func handleSignOut() {
let firebaseAuth = FIRAuth.auth()
do {
try firebaseAuth?.signOut()
} catch let signOutError as NSError {
print ("Error signing out: %@", signOutError)
}
// facebook sign out
UserDefaults.standard.setIsLoggedIn(value: false)
FBSDKLoginManager().logOut()
print("did log out of facebook...")
// google sign out
UserDefaults.standard.setIsLoggedIn(value: false)
GIDSignIn.sharedInstance().signOut()
print("did log out of Google...")
if FIRAuth.auth()?.currentUser == nil {
let loginController = LoginController()
present(loginController, animated: true, completion: nil)
}
}
这样做应该不会有太大问题,但是您会降低代码的效率,因为 Firebase 仍会检查其他类型的用户是否已签名 即使在 用户已注销一次。同样,这应该不是什么大问题,但在函数内部使用条件语句的好处大于坏处。不管怎样,做条件还是很容易的。
我想知道我是否可以在一个函数调用中组合使用两种注销方法(Facebook 和 Google),或者这是否是一种好的做法?我有一个注销按钮,当 Facebook 用户注销时从 Facebook 注销,当然当 Google 用户登录时从 Google 注销。或者我应该在注销功能中创建一个条件吗?感谢您提供的所有帮助!
// handle sign out function
func handleSignOut() {
let firebaseAuth = FIRAuth.auth()
do {
try firebaseAuth?.signOut()
} catch let signOutError as NSError {
print ("Error signing out: %@", signOutError)
}
// facebook sign out
UserDefaults.standard.setIsLoggedIn(value: false)
FBSDKLoginManager().logOut()
print("did log out of facebook...")
// google sign out
UserDefaults.standard.setIsLoggedIn(value: false)
GIDSignIn.sharedInstance().signOut()
print("did log out of Google...")
if FIRAuth.auth()?.currentUser == nil {
let loginController = LoginController()
present(loginController, animated: true, completion: nil)
}
}
这样做应该不会有太大问题,但是您会降低代码的效率,因为 Firebase 仍会检查其他类型的用户是否已签名 即使在 用户已注销一次。同样,这应该不是什么大问题,但在函数内部使用条件语句的好处大于坏处。不管怎样,做条件还是很容易的。