Auth状态更改侦听器被触发两次?
当我的页面加载时,我需要知道用户是否已登录并基于此执行不同的任务。 我做的第一件事是检查它们是否已登录,但由于某种原因,要检查的if
语句是否正在validation两次。 这是我的代码:
override func viewDidAppear(_ animated: Bool) { FIRAuth.auth()?.addStateDidChangeListener { auth, user in if let user = user { print("User is logged in") }
“用户已登录”在页面加载时打印两次而不是仅打印一次。 我做错了什么吗?
我遇到了同样的问题。 它不是用于登录的。 可以面对流动的选项https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseAuth.AuthStateListener
- 在听众注册之后
- 用户登录时
- 当前用户退出时
- 当前用户更改时
- 当前用户令牌发生变化时
所以只需要一个标志,然后检查一个。 或检查响应是否
试试这种方式:
override func viewDidAppear(_ animated: Bool) { FIRAuth.auth()?.addStateDidChangeListener { auth, user in if let user = user { if user != nil { print("User is logged in") } }
注意:尝试使用两个flag
并检查user =! nil
user =! nil