이번에는 실제적으로 iOS 프로젝트에서 필요한 기능인 Database 패키지를 추가하고
간단한 테스트 코드를 작성해서 실행해보았다.
1. Firebase - Realtime Database 설정
Realtime Database를 생성하고 규칙을 읽기 / 쓰기 모두 true로 해준다.
변경하고 나서 나오는 게시 버튼을 꼭 눌러야 한다.
2. SDK 추가
지난번 게시글에서 CocoaPods를 사용해서 SDK를 추가해봐야겠다고 마음을 먹었었는데,
그냥 자연스럽게 했었던 방법대로 XCode 내에서 Firebase Database SDK를 추가했다.
다음에는 꼭 .. pod 써보기로 약속 ~
XCode File -> Add Packages -> URL에 Firebase 입력 -> Add Package -> FirebaseDatabase 체크 -> Add Package
3. TEST
테스트 하기 위해 간단한 회원가입 코드를 작성했다.
이메일, 비밀번호를 TextField에 입력을 받고 가입하기 버튼을 누르면 Firebase DB에 입력한 값이 저장되는 코드다.
import UIKit
import FirebaseDatabase
/*
회원가입
*/
class JoinUserViewController: UIViewController {
// Firebase
var firebaseDB: DatabaseReference!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var pwTextField: UITextField!
@IBOutlet weak var confirmPwTextField: UITextField!
@IBOutlet weak var confirmSwitch: UISwitch!
@IBOutlet weak var joinButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Switch, Button 비활성화
confirmSwitch.isOn = false
joinButton.isEnabled = false
}
/* 개인정보 이용약관 동의 스위치 on off Action */
@IBAction func confirmSwitchAction(_ sender: Any) {
if confirmSwitch.isSelected == false {
confirmSwitch.isSelected = true
joinButton.isEnabled = true
} else {
confirmSwitch.isSelected = false
joinButton.isEnabled = false
}
}
/* 가입하기 Button Action */
@IBAction func joinButtonAction(_ sender: Any) {
print("가입하기 click")
/*
Firebase Test Code
가입하기 버튼 누르면 데이터 입력하고 화면 나가기.
*/
let inputEmail: String? = emailTextField.text?.description
let inputPW: String? = confirmPwTextField.text?.description
firebaseDB = Database.database().reference()
firebaseDB.child("memberJoin").setValue(["email":inputEmail, "password":inputPW])
self.dismiss(animated: true)
}
/* Cancel Button Action */
@IBAction func cancelAction(_ sender: Any) {
self.dismiss(animated: true)
}
}
memberJoin 안에 email, password 데이터를 삽입하는데
emailTextField에 입력된 값인 inputEmail은 email에 삽입하고,
confirmPwTextField에 입력된 값인 inputPW를 password에 삽입한다.
emailTextField에는 test를 입력하고 confirmPwTextField(비밀번호 확인)에는 1234를 넣어 가입하기 버튼을 눌렀다.
입력한 값 대로 Database에 저장된 것을 확인할 수 있다.
오류 - Exception NSException FirebaseApp.configure() could not find .... ~
처음 코드를 작성하고 빌드했을 때,
AppDelegate 파일에 잘 작성했던 FirebaseApp.configure()를 찾을 수 없다는 오류가 났다.
오타가 났었나 싶어서 다시 복붙 했는데 여전했다.
열심히 구글링해본 결과 프로젝트를 연결할 때 넣었던 GoogleService-Info.plist 파일을 XCode에서 제대로 추가하지 않아서 발생했던 오류였다.
Firebase 연결할 때 다운로드한 GoogleService-Info.plist 파일을 Finder에서 iOS 프로젝트 내에 그대로 옮겼는데,
그 이후에 XCode 프로젝트 우클릭 -> Add Files to "..."를 이용하여 복붙 했던 파일을 정확하게 Add 해주고 오류를 해결했다
'DEV - iOS > iOS' 카테고리의 다른 글
[Swift] Firebase Firestore 데이터 저장하기(이메일 중복 검사) (0) | 2022.05.21 |
---|---|
[Swift] Firebase Auth 로그인 기능 (0) | 2022.04.27 |
[Swift] iOS 프로젝트에 Firebase 연동하기 (0) | 2022.04.11 |
[XCode / Error] Unable to boot device because it cannot be located on disk (0) | 2022.04.06 |
[Swift] 스위프트 기본 문법 공부(8) - Properties (0) | 2022.02.18 |