テックキャンプ139日目〜Firebase・匿名ログイン

kobasaです(´ω`*)
現在Firebaseというサービスを使用したアプリの勉強をしています。
Firebaseを使えばAWSのような感じでアプリの権限やデータベースなど様々なことができます。
AWSもですが全然使いこなせてないのでこんな説明しかできぬ(´・ω・`)

少し触った感想はAWSよりかなりシンプルですね。iOSだからか簡単なアプリだからかもですが。
データベースなんかは必須ですし、きちんと覚えていきたいところです。

139日目の勉強内容

Firebase導入

今回のアプリで使用したpod。FIrebaseに関係ないものも。

pod 'Firebase'  #->firebaseの基本となるもの
pod 'Firebase/Auth'  #->Authentication、ログインに使用する
pod 'Firebase/Firestore'  #->firestoreに使用する
pod 'EMAlertController'  #->アラートに使用する

AppDelegateファイルに記述が必要。

import Firebase

#didFinishLaunchingWithOptionsのメソッド内に記述
FirebaseApp.configure()

Authenticationを使用してログインを管理する

Firebaseの「Authentication」という機能でログインの設定やユーザー管理ができる。
Sign-in methodタブの「新しいプロパイダを追加」で
ログイン方法にTwitterやGoogleアカウントを設定できる。
今回のアプリでは匿名ログインを設定。

UsersタブでログインユーザーのIDやユーザーIDを管理できる。

Authenticationを使用したログインやログアウトを行う方法。
deviseのような感じですかね。
まず、機能を使いたいコントローラーにFirebaseAuthをimportする。

テキストフィールドに入力した名前で匿名ログインを行う処理

func login(){
	//データベースにアクセスし、匿名ログインを行う処理
	Auth.auth().signInAnonymously{ (result, error) in
		//値がresult(成功)の場合はユーザー名が入ってくる
		let user = result?.user
		
		//ユーザーネームをアプリ内に保存
		UserDefaults.standard.set(self.textField.text, forKey: "userName")

		//ナビゲーションコントローラーを使用した画面遷移。
		let viewVC = self.storyboard?.instantiateViewController(withIdentifier: "viewVC") as! ViewController

		self.navigationController?.pushViewController(viewVC, animated: true)
	}
}

ログアウトを行う処理

@IBActionfunclogOut(_sender: Any) {

let firebaseAuth = Auth.auth()
	do{
		try firebaseAuth.signOut()
		//ユーザーネームとドキュメントidを消去
		UserDefaults.standard.removeObject(forKey: "userName")
		UserDefaults.standard.removeObject(forKey: "documentID")
		} catch let error as NSError{
			print("エラー",error)
	}
//ログアウトして前画面に遷移
	self.navigationController?.popViewController(animated: true)
}

Firebaseに使い方が説明されているっぽい。時間があるときに公式を見よう(´ω`*)

コメント

タイトルとURLをコピーしました