2016-09-02 11 views
0

ログインボタンを登録ボタンに自動的に変更しようとしています。ユーザーがデータベース上に存在する場合、ボタンはログインし、そうでない場合はボタンが変更されます。これまでのところ、私のコードはこのように見えますが、うまくいきません。テキストフィールドが変更されたときにユーザーがFirebaseに存在するかどうかを確認します

func textFieldDidChange(textField: UITextField) { 
    if emailCell.textField.text != "" && passwordCell.textField.text != "" { 

     let email = emailCell.textField.text 
     let usersRef = FIRDatabase.database().reference().child("users") 

     usersRef.queryOrderedByChild("email").queryEqualToValue("\(email)").observeSingleEventOfType(.Value, withBlock: { snapshot in 
      if (snapshot.value is NSNull) { 
       self.forwardButton.setTitle(buttonTitle.new.rawValue, forState: .Normal) 
      } else { 
       self.forwardButton.setTitle(buttonTitle.login.rawValue, forState: .Normal) 
      } 
     }) 
     self.forwardButton.hidden = false 

    } else { forwardButton.hidden = true } 
} 

ヘルプがありますか?

+0

デリゲートを設定しましたか? –

+0

テキストチェンジオブザーバが動作し、Firebaseに書き込むためにこの関数の中にいくつかのコードを書いています。 – ed1791

+0

これは代議員だったのですか? –

答えて

0

問題が見つかりました。

ユーザーを認証する前にデータベースにアクセスしようとしているため、クエリが機能しません。

私はユーザーのノードを公開することができますが、それは危険です。代わりに、私がしたのは、匿名の認証を有効にして、匿名でサインインしてクエリを実行し、クエリを実行した直後にサインアウトすることでした。

希望に役立ちます。

関連する問題