Bonjour à tous.
J’ai crée une application de restauration qui permet d’effectuer des reservation.J’ai utilisé Firebase pour les données utilisateurs.
J’utilise un email de test
L’authentification fonctionne correctement
Je me déconnecte
Je reviens à mon Controller d’accueil…
mais l’utilisateur n’est pas déconnecté
Voilà mon code
import UIKit
import FirebaseAuth
import FirebaseDatabase
import UserNotifications
class UserProfileViewController: UIViewController {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var emailLabel: UILabel!
@IBOutlet weak var reservationLabel: UILabel!
@IBOutlet weak var reservationButton: UIButton!
@IBOutlet weak var logOutButtonWasPressed: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
view.backgroundColor = .black
reservationButton.addTarget(self, action: #selector(openReserve), for: .touchUpInside)
logOutButtonWasPressed.addTarget(self, action: #selector(deco), for: .touchUpInside)
if let user = Auth.auth().currentUser {
let ref = Database.database().reference()
let uiserID = Auth.auth().currentUser?.uid
ref.child("users").child(uiserID!).observeSingleEvent(of: .value) { (snapshot) in
let value = snapshot.value as? NSDictionary
let username = value?["username"] as? String ?? "no username"
let firstName = value?["firstname"] as? String ?? ""
let lastName = value?["lastname"] as? String ?? ""
self.emailLabel.text = "\(username)"
self.nameLabel.text = "\(firstName) \(lastName)"
self.reservationLabel.text = "\(lastName),vous pouvez effectuer une réservation."
let content = UNMutableNotificationContent()
content.title = "Ô'Cocher"
content.body = "Bonjour \(lastName)."
content.sound = UNNotificationSound.default
content.badge = 0
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
let request = UNNotificationRequest(identifier: "welcomeInSpace", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}
} else {
fatalError("⛔️ Erreur : aucun utilisateur est connecté lors de l'affichage de l'écran d'accueil")
}
}
func setUp(){
Utilities.styleRedButton(logOutButtonWasPressed)
Utilities.styleBlackRoundedButton(reservationButton)
}
@IBAction func openReserve(_ sender: UIButton) {
UIApplication.shared.open(URL(string:"https://reservation.dish.co/widget/hydra-b0409b90-8c2a-11e9-86e6-6720499d7bcc" )! as URL,options : [:], completionHandler : nil)
}
@IBAction func deco(_ sender: UIButton) {
let content = UNMutableNotificationContent()
let actionSheet = UIAlertController(title: "Vos données personnelles ne seront plus accessibles.Voulez vous vraiment effectuer cette opération?", message: "", preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: "Se déconnecter", style: .destructive, handler: { action in
try! Auth.auth().signOut()
if let storyboard = self.storyboard {
content.title = "Ô'Cocher"
content.body = "Vous êtes déconnecté(e)."
content.sound = UNNotificationSound.defaultCriticalSound(withAudioVolume: 3.0)
content.badge = 0
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)
let request = UNNotificationRequest(identifier: "logOut", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "HomeVC") as! HomeViewController
self.present(vc, animated: false, completion: nil)
}
}))
actionSheet.addAction(UIAlertAction(title: "Annuler", style: .cancel, handler: { action in
}))
present(actionSheet, animated : true)
}
}
Est ce que vous avez une idée d’où vient le problème,s’il vous plait?