ios - Firebase 无故注销某些用户
问题描述
我正在开发一个新应用程序,并且之前多次使用 Firebase 作为后端。我的代码(如下)应该在没有用户登录时执行 segue,在“worker”登录时不执行任何操作,并在“employer”登录时执行另一个 segue。这工作正常,但出现了一个问题. 当“工人”登录并重新运行应用程序时,他们保持登录状态。另一方面,当“雇主”登录正确的 segue 时,但当应用程序重新运行时(我这样做这样我就可以在关闭应用程序后看到控制台),它们被注销并且 nil 作为当前用户返回。这会注销之前登录的雇主。有什么帮助吗?我的代码:
override func viewDidLoad() {
super.viewDidLoad()
var ref: DatabaseReference!
ref = Database.database().reference()
let uid = Auth.auth().currentUser?.uid
let locationReference = ref.child("locations")
print("CURRENT USER:")
print(uid)
print(Auth.auth().currentUser)
if Auth.auth().currentUser == nil {
print("SEGUE RAN")
self.performSegue(withIdentifier: "notSignedIn", sender: nil)
}
else if Auth.auth().currentUser != nil {
print("UNO")
Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
print("DOS")
let isWorker1 = dictionary["Worker"] as? Bool
print("IS WORKER:")
print(isWorker1)
if isWorker1 == true {
}
else if isWorker1 == false {
print("TRES")
self.performSegue(withIdentifier: "notWorker", sender: nil)
}
}
})
}
}
解决方案
推荐阅读
- conda - snakemake:SGE 集群上未激活 conda 环境
- regex - 用于结束字符串的 Eclipse 正则表达式匹配
- hyperledger - 如何使用 Hyperledger Sawtooth 中的控制台查找用户地址?
- javascript - Webcomponent自定义元素传函数onClick
- angular - 如何在更新/删除/插入行时更新表视图而不重新加载整个组件
- angularjs - Spring获取请求文件未下载
- c# - 检查实体的属性是否通过反射和 EF Core 标记为 IsRequired()
- python - 如何隐藏基于单选按钮选择的 tkinter 小部件?
- r - 如何跨多个采样日绘制两组之间的差异?
- java - 当堆栈跟踪中存在类时在断点处停止