目次
- Firebaseを使用して、インスタクローンを作る
- 感想
- 次回
Firebaseを使用して、インスタクローンを作る。
元々、何かiOSアプリを作りたいと思い、インスタクローン制作を決意した俺。
最初はRealmしようかと思っていたが、後々Firebaseとなる物を発見。
今回は、それを使って制作することにした。
① Firebase登録
これは、以下のサイトを参考にしました。
ありがとうございますm(_ _)m
Swiftで始めるFirebase入門
② 新規登録・ログイン画面を作る
次に、新規登録・ログイン画面を作る。
今回はシステムの制作が最優先なので、UIはガン無視した。
ViewController.swift
import UIKit
import Firebase
//ディスプレイサイズ取得
let w = UIScreen.main.bounds.size.width
let h = UIScreen.main.bounds.size.height
class ViewController: UIViewController {
var DBRef:DatabaseReference!
//メールアドレス入力欄
let user_id = UITextField(frame: CGRect(x: (w - 160) / 2, y: 50, width: 160, height: 30))
//パスワード入力欄
let user_pass = UITextField(frame: CGRect(x: (w - 160) / 2, y: 100, width: 160, height: 30))
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//メールアドレス入力欄設定
user_id.text = "メールアドレスを入力"
user_id.clearsOnBeginEditing = true
user_id.layer.cornerRadius = 5.0
user_id.layer.borderColor = UIColor.black.cgColor
user_id.layer.borderWidth = 1.0
view.addSubview(user_id)
//パスワード入力欄設定
user_pass.text = "パスワードを入力"
user_pass.isSecureTextEntry = true
user_pass.clearsOnBeginEditing = true
user_pass.layer.cornerRadius = 5.0
user_pass.layer.borderWidth = 1.0
user_pass.layer.borderColor = UIColor.black.cgColor
view.addSubview(user_pass)
//新規登録ボタン
let b1 = UIButton(frame: CGRect(x: (w - 80) / 2, y: 150, width: 80, height: 30))
b1.setTitle("追加", for: UIControlState())
b1.backgroundColor = .red
b1.addTarget(self, action: #selector(ViewController.add(_:)), for: .touchUpInside)
view.addSubview(b1)
//ログインボタン
let b2 = UIButton(frame: CGRect(x: (w - 80) / 2, y: 200, width: 80, height: 30))
b2.setTitle("ログイン", for: UIControlState())
b2.backgroundColor = .blue
b2.addTarget(self, action: #selector(ViewController.SignIn(_:)), for: .touchUpInside)
view.addSubview(b2)
//DBインスタンス変数の生成
DBRef = Database.database().reference()
}
//新規登録
@objc func add(_ :UIButton) {
Auth.auth().createUser(withEmail: user_id.text!, password: user_pass.text!, completion: { (user:User?, error:Error?) in
if let error = error {
print("Creating the user failed! \(error)")
return
}
if let user = user {
print("user : \(user.email) has been created successfully.")
}
})
}
//ログイン
@objc func SignIn(_ : UIButton){
Auth.auth().signIn(withEmail: user_id.text!, password: user_pass.text!) { (user, error) in
if let error = error {
print("login failed! \(error)")
return
}
if let user = user {
let storyboard: UIStoryboard = self.storyboard!
let nextView = storyboard.instantiateViewController(withIdentifier: "Image")
self.present(nextView, animated: true, completion: nil)
print("user : \(user.email) has been signed in successfully.")
}
}
}
}
③完成品
![スクリーンショット 2018-03-05 1.34.44.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F154610%2F28551c65-e24c-c18c-01c3-fbc5dcab75a2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=6ef39361314101d88d34fba48002b68b)
感想
簡単にユーザ管理ができるのは、便利ですね!
登録・ログイン処理もあっという間!
これは、管理しやすいですね。