こんにちは私は問題があり、アドバイスや回答に感謝します。データベースからの値を取得する
func getUserProfileMDP(){
// set attributes to textField
var ref: DatabaseReference!
ref = Database.database().reference()
let user = Auth.auth().currentUser
print(user!.uid)
ref.child("users").child((user?.uid)!).observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
guard let value = snapshot.value as? [String: String] else { return }
print(value)
let passwordValue = value["password"]!as! String
print(passwordValue)
self.MDP = passwordValue // prints the right value from database
}){ (error) in
print(error.localizedDescription)
}
print(self.MDP) // prints the value innitialised in class(nope)
}
ここには、データベースから値を取得する関数があります。それは動作します(最初のプリントは正しい値を得ます)。
@IBAction func register(_ sender: Any) {
print(self.MDP)// prints the value innitialised in class(nope)
getUserProfileMDP()
print(self.MDP) // prints the value innitialised in class(nope)
let MDP = self.MDP
これはパスワードを比較するために必要なものです。 、
var MDP = "nope"
あなたの最後のコメントを考えると素敵な一日
getUserProfileMDP 'で.observeSingleEvent'()' 'ので、非同期です。したがって、プログラムの制御フローは、あなたが考えるものではありません。コールバックを使用する! – Moritz
「コールバック」とは何ですか? –