Quick Help On Bool Values in Swift : I have a bool "alreadyHaveProfile" that I change to TRUE inside of a while loop...however after the loop ends the value changes to FALSE. Here is the code...

    if AccessToken.current != nil {
            fetchUserData()
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3.5) {
                let dref = FIRDatabase.database().reference().child("CheckUsers")
                dref.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
                    var alreadyHaveProfile = false
                    let enumerator = snapshot.children
                    loop: while let user = enumerator.nextObject() as? FIRDataSnapshot {
                        if user.key == userID {
                            alreadyHaveProfile = true
                            break loop
                        }
                    }
                }, withCancel: { (error: Error) in
                    print(error.localizedDescription)
                })
                print(alreadyHaveProfile)

Any reason why the variable keeps going back to FALSE despite being changed to TRUE inside the loop? I know it's something super simple, I just can't seem to find out what it is right now. Appreciate the help!