質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.93%

firebaseで認証したい

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 845

madao

score 24

import UIKit
import Firebase
import FirebaseAuth

class SignUpViewController: UIViewController {

    var email:UITextField!
    var password:UITextField!
    var signin:UIButton!
    var create:UIButton!
    let BTN_SIGN = 0
    let BTN_C = 1



    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let x = (UIScreen.main.bounds.size.width-200)/2
        let y = (UIScreen.main.bounds.size.height+80)/9

        email=makeTextField(frame: CGRect(x:x, y:y,width: 200,height: 30), text: "")
        self.view.addSubview(email)

        password=makeTextField(frame: CGRect(x: x,y: y+40,width: 200,height: 30), text: "")
        password.isSecureTextEntry = true
        self.view.addSubview(password)


        signin=makeButton(frame: CGRect(x:x, y:y+80,width: 60, height:30), text: "signin", tag: BTN_SIGN)
        signin.addTarget(self, action:#selector(SignUpViewController.onClick(sender:)), for: .touchUpInside)
        self.view.addSubview(signin)

        create=makeButton(frame: CGRect(x:x+100,y:y+80, width:60,height: 30), text: "create", tag: BTN_C)
        create.addTarget(self, action: #selector(SignUpViewController.onClick(sender:)), for: .touchUpInside)
        self.view.addSubview(create)

    }

    func onClick (sender:UIButton){
        if sender.tag == BTN_SIGN {


            FIRAuth.auth()?.signInWithEmail(email.text!, password: password.text!, completion: { user, error in
                if let error = error {
                    print("サインインできません \(error)")
                    return
                }

                if let user = user {
                    print("user : \(user.email!) サインインできました")
                }
            })


        }else if sender.tag == BTN_C {

            FIRAuth.auth()?.createUserWithEmail(email.text!, password: password.text!, completion: { user, error in
                if let error = error {
                    print("ユーザーを作れませんでした \(error)")
                    return
                }

                if let user = user {
                    print("user : \(user.email!)ユーザーを作成しました")
                }
            })

        }

    }


    func makeTextField(frame:CGRect,text:String)->UITextField{
        let textField = UITextField()
        textField.frame = frame
        textField.text = text
        textField.backgroundColor = UIColor.white
        textField.layer.cornerRadius = 8
        textField.clearButtonMode = UITextFieldViewMode.whileEditing

        return textField
    }

    func makeButton(frame:CGRect,text:String,tag:Int)->UIButton {
        let button = UIButton(type:UIButtonType.system)
        button.frame = frame
        button.setTitle(text , for: UIControlState.normal)
        button.tag = tag
        return button
    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

以上のコードでメールアドレスとパスワードを登録してfirebaseで認証しようと考えています。
しかし、import FirebaseAuthのところでno such module 'FirebaseAuth'というエラーが発生していましました。
このimport FirebaseAuthをやらないとuse of unresolved identifier FIRAuthというエラーが発生します。どうすればエラーを解除できるのでしょうか教えてください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

コードの内容は見ていないのですが、最後の事象説明の所だけ読んで回答します。

firebaseはpodを使ってインストールされましたでしょうか?
それであれば下記の点を確認ください。

1.下記のコマンドでXCodeを開いているか?
(「SampleProject」の所は自分の作っているプロジェクト名に読み替えてください。)

open SampleProject.xcworkspace/


2.開いたプロジェクトで「ビルド」は実行したか?
ビルドしないと、import出来ない時があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る