firebaseを使用しているiOSアプリケーションに問題があります。私は、次のコードでサインアウトしています:Firebase signOutが正常に動作しない
@IBAction func logoutDidTap(_ sender: Any) {
try! FIRAuth.auth()?.signOut()
アプリのUIは、サインアウトを反映しているが、私は次のコンソールメッセージ取得しています:メディア/で [Firebase /データベース] [I-RDB03812]リスナーが失敗しました:PERMISSION_DENIEDを また、別のユーザーの資格情報でサインインすると、そのアプリは古いユーザーとしてサインインされます。
override func viewDidAppear(_ animated: Bool) {
//user logged in?
FIRAuth.auth()?.addStateDidChangeListener({ (auth, user) in
if let user = user { //signed in
DatabaseReference.users(uid: user.uid).reference().observeSingleEvent(of: .value, with: { (snapshot) in
if let userDict = snapshot.value as? [String: Any] {
self.currentUser = User(dictionary: userDict)
}
})
}else {
self.performSegue(withIdentifier: Storyboard.showWelcome, sender: nil)
}
})
看板アウトがスタックにプッシュし、他のリスナーの前にポップされた条件があります可能性が高い以上のものを。したがって、アプリケーションはログアウト後にFirebaseノードを読み取ろうとしています。したがって、許可は拒否されました。これは、トップレベルのオブザーバを持ち、そのクロージャ内でサインアウト機能を含む他のイベントが発生している状況です。 – Jay
あなたの古い質問に戻って、答えを正しいとマークするかフィードバックを返す必要があります。質問をして答えを出す人々にフィードバックを与えないのは悪い形です。 – AgRizzo