我刚刚将Facebook登录功能添加到我的firebase应用程序中。为了在用户第一次登录时添加一些附加信息,我添加了一个控制功能。为确保用户每次使用自己的Facebook帐户登录时都不会输入注册表格,我想检查他是否已在该注册表格中添加了一些额外信息。
为此,我决定检查他的UID是否已保存在FIRDatabase中。因为如果您使用Facebook登录,您只需创建一个FIRAUth,而不是FIRDATAbase上的参考。但是这个功能不起作用。
该函数始终返回,FIRDatabase中已有一个引用不正确。
func checkIfUserIsregistered() {
print("function is called")
if FIRAuth.auth()?.currentUser?.uid == nil{
perform(#selector(handlelogout), with: nil, afterDelay: 0)
}else{
print("Kontrolle wird ausgeführt")
let FirebaseUID = FIRAuth.auth()?.currentUser?.uid
let UIDCheck = FIRDatabase.database().reference()
UIDCheck.queryOrdered(byChild: "users").queryEqual(toValue: FirebaseUID).observe(.value, with: { snapshot in
if snapshot.value == nil {
print("User hat noch keine Datenbankreferenz")
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "FBRegister")
self.present(vc, animated: true, completion: nil)
}else {
print("Der User hat bereits eine Datenbankreferenz")
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "usersVC")
self.present(vc, animated: true, completion: nil)
}
})
}
}
有没有人知道如何解决这个问题?