だから私はこれに本当に苦労していて、なぜtbhなのかわかりません。
ユーザー名を強制するさまざまな方法を試しました(メールアドレス)をテキストフィールドから文字列に変換します。変換したり、入力を文字列として受け入れたりすることはできません。ログイン機能の残りの部分を書いている間、これを取得するためにほぼ1日とばかげて試みていましたが、これにより、機能しなくなったり、他のエラーが表示されたりします。
Auth.auth().signIn(withEmail: username, password: password, completion: { user,
エラー
私のテキストフィールドはユーザー名と呼ばれます。(String(username))をStringなどに変換しようとしました。varを作成してStringにしようとしましたが、これではエラーが増えるだけで、問題があると思います。
助けてください。
回答:
回答№1は0もしあなたが UITextField
名前 username
次の方法でテキストフィールドからテキストを取得します。 username.text
これは、 String?
.
見る https://developer.apple.com/documentation/uikit/uitextfield/1619635-text
回答№2の場合は0
func performLogin() {
//Logging In
Auth.auth().signIn(withEmail: username, password: password, completion: { user, error in
if (error != nil){
errorLabel = error1 //"There has been an Error " + "No User Found"
//Could Not Login, Attempt to Create user
//Creating Account
Auth.auth().createUserWithEmail(self.username, password: self.password!, completion: { user, error in
回答№3の場合は0
なぜなら UITextField
はありません String
しかし、それはと呼ばれる文字列である値を持っています text
。これを取得するには、コードを変更するだけです
Auth.auth().signIn(withEmail: username.text, password: password.text, completion: { user,...
しかし、あなたが言ったように text
はオプションの文字列であるため、エラーが発生します。関数は明示的な文字列を予期しています
のテキスト値 UITextField
はオプションです。つまり、値がnilにならないことを保証できます。Swiftの基本とオプションと明示の詳細を読む必要がありますが、ここに簡単な解決策があります。
サインインで変数を渡す前に、を使用して変数をアンラップできます。 guard
ステートメント
guard let usernameString = username.text else {
// Handle no username, show an alert etc
return
}
guard let passwordString = password.text else {
// Handle no password, show an alert etc
return
}
Auth.auth().signIn(withEmail: usernameString, password: passwordString, completion: { user,...
回答№4の場合は0
ねえ、私はFirebaseでアプリを作成しています。電子メールでユーザーを作成しようとしたときに、テキストフィールドなどで同じ問題が発生しました。関数に組み込んだだけで、夢のように機能します...
func signIn() {
Auth.auth().signIn(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in
print(user?.uid)
if error != nil {
self.displayAlert(title: "Error", message: (error!.localizedDescription))
} else {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loggedInView = storyboard.instantiateViewController(withIdentifier: "Today")
self.present(loggedInView, animated: true, completion: nil)
}
}
}
それを行うための素晴らしい簡単な方法です。
希望が役立ちます。