앱의 AppDelegate.swift에 다음 코드를 추가하여 Firebase를 초기화합니다:
import Firebase
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
Firestore 데이터베이스 인스턴스를 가져옵니다:
let db = Firestore.firestore()
문서를 추가하려면:
var ref: DocumentReference? = nil
ref = db.collection("users").addDocument(data: [
"first": "Ada",
"last": "Lovelace",
"born": 1815
]) { err in
if let err = err {
print("Error adding document: \(err)")
} else {
print("Document added with ID: \(ref!.documentID)")
}
}
문서를 수정하려면:
let washingtonRef = db.collection("users").document("washington")
washingtonRef.updateData([
"capital": true
])
문서를 읽으려면:
let docRef = db.collection("users").document("washington")
docRef.getDocument { (document, error) in
if let document = document, document.exists {
let dataDescription = document.data().map(String.init(describing:)) ?? "nil"
print("Document data: \(dataDescription)")
} else {
print("Document does not exist")
}
}
문서를 삭제하려면:
db.collection("users").document("washington").delete() { err in
if let err = err {
print("Error removing document: \(err)")
} else {
print("Document successfully removed!")
}
}
문서 또는 쿼리에 대한 변경 사항을 실시간으로 수신하려면 SnapshotListener를 사용할 수 있습니다.
let docRef = db.collection("users").document("washington")
docRef.addSnapshotListener { documentSnapshot, error in
guard let document = documentSnapshot else {
print("Error fetching document: \(error!)")
return
}
guard let data = document.data() else {
print("Document data was empty.")
return
}
print("Current data: \(data)")
}