1
let database = FIRDatabase.database().reference() 
    database.child("Users").queryOrderedByKey().observe(.childAdded, with: { (snapshot) in 
     print(snapshot) 
     if let value = snapshot.value as? [String: AnyObject] { 
      let ui = value["id"] as! String 
      if ui != FIRAuth.auth()!.currentUser!.uid 
      { 
       var storyboard = UIStoryboard(name: "Main", bundle: nil) 
       if s == true 
       { 
        storyboard = UIStoryboard(name: "Main", bundle: nil) 
       } 
       else if p == true 
       { 
        storyboard = UIStoryboard(name: "big", bundle: nil) 
       } 
       else if se == true 
       { 
        storyboard = UIStoryboard(name: "se", bundle: nil) 
       } 
       else if os == true 
       { 
        storyboard = UIStoryboard(name: "4s", bundle: nil) 
       } 
       else if ip1 == true 
       { 
        storyboard = UIStoryboard(name: "ipad1", bundle: nil) 
       } 
       else if ipb == true 
       { 
        storyboard = UIStoryboard(name: "ipadbig", bundle: nil) 
       } 

         let naviVC = storyboard.instantiateViewController(withIdentifier: "eula")as! UIViewController 
         let appDelegate = UIApplication.shared.delegate as! AppDelegate 
         appDelegate.window?.rootViewController = naviVC 

      } 
      else 
      { 
       var storyboard = UIStoryboard(name: "Main", bundle: nil) 
       if s == true 
       { 
        storyboard = UIStoryboard(name: "Main", bundle: nil) 
       } 
       else if p == true{ 
        storyboard = UIStoryboard(name: "big", bundle: nil) 
       } 
       else if se == true 
       { 
        storyboard = UIStoryboard(name: "se", bundle: nil) 
       } 
       else if os == true{ 
        storyboard = UIStoryboard(name: "4s", bundle: nil) 
       } 
       else if ip1 == true 
       { 
        storyboard = UIStoryboard(name: "ipad1", bundle: nil) 
       } 
       else if ipb == true 
       { 
        storyboard = UIStoryboard(name: "ipadbig", bundle: nil) 
       } 
       let naviVC = storyboard.instantiateViewController(withIdentifier: "yo")as! UIViewController 
       let appDelegate = UIApplication.shared.delegate as! AppDelegate 
       appDelegate.window?.rootViewController = naviVC 
      } 
     } 


    }) 

J'ai une application firebase, et je veux vérifier si un utilisateur existe dans mon databse, Si l'option Ne pas je veux afficher un accord de licence, mais si elles Je n'ai pas trop. Ma méthode actuelle ne fonctionne que s'il y a deux utilisateurs. Merci d'avance pour votre aide.Vérifiez si l'utilisateur existe déjà Firebase rapide 3.0

Répondre

2

I figured it out

let database = FIRDatabase.database().reference() 
    database.child("Users").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in 
     print(snapshot) 

     if snapshot.hasChild(FIRAuth.auth()!.currentUser!.uid) 
      { 
1

Avec ce code, je pense qu'il ne s'exécutera que lorsqu'un enfant est ajouté. Je ne peux pas le vérifier en ce moment, mais essayez avec

database.child("Users").queryOrderedByKey().observe(.Value, with:{ (snapshot) in 
      ... 
    }) 

Comme je l'ai dit que je ne peux pas vérifier si me répondre si vous avez un problème. Bonne chance!

+0

@AtaerCaner .Value a écrasé mon application –

+0

Ouais je ne m'en souvenais pas très bien mais ça devait être avec .Value dans votre cas. –

+0

Ya je ai réalisé qu'il devait être .value juste après que j'ai posté –

2

Tout ce que vous devez faire est de changer .ChildAdded à .value. Cela permettra de s'assurer qu'il lit les données lorsque vous démarrez.