#メルアドとパスワードを入力してユーザーを作る/ログインするのfirebaseで作ってみました
シングルページプロジェクトを作っておいてください
認証用のfirebaseのプロジェクトも作っておいてください
導入部分も書いてあります
#まずfirebaseをiosアプリに追加
とりあえずfirebaseのアカウントを作成
googleアカウントを持っていれば一瞬で終わります
新規プロジェクトを作成してiosにアプリにfirebaseを追加を選択
ターミナルでアプリケーションのXcodeプロジェクトの場所に移動してください
podfile作成
pod init
vimで編集
vim podfile
pod 'Firebase/Auth'をtargetとendの間に入れる
target 'アプリ名' do
pod 'Firebase'
pod 'Firebase/Auth'
end
インストール
pod install
インストール完了です
workspaceファイルを開いてください
#Firebaseのコンソールでメルアド/パスワードの認証設定する
Auth->ログイン方法をクリック
設定完了です
#xcodeでプロジェクトを編集していきます
import UIKit
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
FIRApp.configure()
return true
}
storyboardは最小限しか使わないタイプです
バックグラウンドをダークグレーにしました
テキストフィールドなどはコードで書いていきますね
import UIKit
import Firebase
class ViewController: 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.mainScreen().bounds.size.width-200)/2
let y = (UIScreen.mainScreen().bounds.size.height+80)/9
email=makeTextField(CGRectMake(x, y, 200, 30), text: "")
self.view.addSubview(email)
password=makeTextField(CGRectMake(x, y+40, 200, 30), text: "")
password.secureTextEntry = true
self.view.addSubview(password)
signin=makeButton(CGRectMake(x, y+80, 60, 30), text: "signin", tag: BTN_SIGN)
signin.addTarget(self, action:#selector(ViewController.onClick(_:)), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(signin)
create=makeButton(CGRectMake(x+100, y+80, 60, 30), text: "create", tag: BTN_C)
create.addTarget(self, action: #selector(ViewController.onClick(_:)), forControlEvents: UIControlEvents.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.whiteColor()
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 , forState: UIControlState.Normal)
button.tag = tag
return button
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
走らせるとこんな感じになります↓
#入力してユーザーをつくってみます
同じメールアドレスで登録しようとすると
こんな感じのが出てきます↓
@つけなかったり.なかったりするとエラーになる
パスワードも6文字以下はエラー↓