首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防火墙登录持久化快速

防火墙登录持久化快速
EN

Stack Overflow用户
提问于 2018-02-01 11:29:11
回答 3查看 4.9K关注 0票数 4

我使用Firebase来处理我的用户注册和我的应用程序的登录。但是如果我登录,然后完全关闭我的应用程序,用户将被迫重新登录。我想让用户登录,除非他们点击“注销”

我的登录代码是:

代码语言:javascript
运行
复制
        Auth.auth().signIn(withEmail: email, password: password, completion: {(user, error) in
            if let firebaseError = error {
                print(firebaseError.localizedDescription)
                return
            }
            self.presentTabBar()
        })
    }
}

除非被特别告知注销,否则如何保持此用户登录?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-22 13:12:10

以下是2020年的一个方便的完整示例:

在您的iOS+Firebase应用程序中的任何地方,您都可以简单地说:

代码语言:javascript
运行
复制
guard let uid = Auth.auth().currentUser?.uid else {
    return print("no current user!")
}

因此,在应用程序的启动屏幕上,只需:

代码语言:javascript
运行
复制
import UIKit
import Firebase
import FirebaseUI

class ViewController: UIViewController, FUIAuthDelegate {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        guard let uid = Auth.auth().currentUser?.uid else {
            return print("no current user, hence AuthUI flow...")
            basicAuthUIFlow()
        }
        print("User .. \(Auth.auth().currentUser?.displayName)")
        continueWhenUserPresent()
    }

就这么简单。所以像往常一样..。

代码语言:javascript
运行
复制
    private func basicAuthUIFlow() {
        let authUI = FUIAuth.defaultAuthUI()
        authUI?.delegate = self
        let pp: [FUIAuthProvider] = [ FUIGoogleAuth() ]
        authUI?.providers = pp
        if let authVC = authUI?.authViewController() {
            present(authVC, animated: true)
        }
    }

    func authUI(_ authUI: FUIAuth,
      didSignInWith authDataResult: AuthDataResult?,url: URL?, error: Error?) {
        let u = authDataResult?.user
        print("Successful login via authUI \(String(describing: u?.displayName))")
        continueWhenUserPresent()
    }

    private func continueWhenUserPresent() {
        .. pushViewController .. your first screen
    }
票数 3
EN

Stack Overflow用户

发布于 2018-02-01 11:41:59

检查用户是否已登录:

代码语言:javascript
运行
复制
if Auth.auth().currentUser != nil {
 // User is signed in.
 // ...
} else {
  // No user is signed in.
 // ...
}

如果用户已登录,则转到Home ViewController。这样,当他再次打开应用程序时,他会去Home ViewController,除非他签了FIRAuth.auth().signOut()

有关更多信息,请查看以下内容:https://firebase.google.com/docs/auth/ios/manage-users

票数 3
EN

Stack Overflow用户

发布于 2018-02-01 11:46:23

为了保持用户登录,您需要检查currentUser 8月会话,如果不是零,则可以将用户重定向到主屏幕。

在"setRootViewController“()代码之后从didFinishLaunchingWithOptions,调用FirebaseApp.configure方法

Swift 4

代码语言:javascript
运行
复制
    func setRootViewController() {
        if Auth.auth().currentUser != nil {
            // Set Your home view controller Here as root View Controller
            self.presentTabBar()
        } else {
            // Set you login view controller here as root view controller
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48561643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档