Firestore 스위프트 CRUD
1. Firestore 규칙 페이지에서 데이터에 대한 규칙 만들기
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /Adress/{userId} {
allow read, write: if request.auth != null;
allow create: if request.auth != null;
}
}
}
2. 데이터 모델 생성
나는 보통 구조체를 사용합니다
신속한 파일을 만들고 -> 구조를 작성하십시오.
Struct myStruct {
var name: String
var city: String
var state: String
var UID: String
var DID: String
var dict: [String: Any] {
return[
"name": name,
"city": city,
"state": state,
"UID": UID,
"DID": DID
]
}
}
3. UserDefaults 객체 생성
사용자 로그인 후 UserDefaults에 사용자 ID를 문자열로 저장한 다음 ViewDidLoad() 또는 ViewWillAppear()에서 이 요소를 재사용하여 이 값을 재개합니다.
4. 첫 번째 데이터 만들기
다음을 사용하여 Firestore에 저장:
let db = Firestore.firestore()
그 다음에...
db.collection("Adress").addDocument(data: [
"name": String(name_label.text ?? ""),
"city": String(city_label.text ?? ""),
"state": String(state_label.text ?? ""),
"UID": String(ID ?? ""),
"DID": String("")
]) { err in
if let err = err {
print("Error adding document: \(err)")
} else {
//print("Document added with ID: \(ref.documentID)")
}
}
5. 데이터 읽기
UserDefault에 이미 저장한 사용자 식별자를 사용하는 것을 잊지 마세요. 저는 보통 계층 구조 때문에 ViewWillAppear()에서 이 작업을 수행합니다...
ID = UserDefaults.standard.object(forKey: "userInfo") as? String
데이터에 대한 구조체 배열을 만듭니다.
var arrayOfData = [myStruct]()
그런 다음 Firestore에서 읽기 시작합니다.
let db = Firestore.firestore()
db.collection("Adress").whereField("UID", isEqualTo: ID!).getDocuments() { [self](querySnapshot, err) in
if let err = err {
print("Error getting Firestore data: \(err)")
}else{
for document in querySnapshot!.documents {
let singleData = myStruct(name: document.data()["name"] as? String ?? "", city: document.data()["city"] as? String ?? "", state: document.data()["state"] as? String ?? "",
UID: document.data()["UID"] as? String ?? "",
DID: document.documentID)
self.arrayOfData.append(singleData)
}
}
}
5. 데이터 업데이트
documentID 및 물론 사용자 ID로 데이터 업데이트 😂
업데이트할 올바른 문서를 찾으면 문서의 새 값을 설정합니다.
let DOCREFERENCE = db.collection("Adress").document(documentID!)
DOCREFERENCE.setData([
"name": String(name_label.text ?? ""),
"city": String(city_label.text ?? ""),
"state": String(state_label.text ?? ""),
"UID": String(ID ?? ""),
"DID": String(documentID)
])
6. 데이터 삭제
컬렉션에서 데이터 삭제(일반적으로 UITableView() 또는 UICollectionView())
let db = Firestore.firestore()
db.collection("Adress").document(documentID).delete()
Reference
이 문제에 관하여(Firestore 스위프트 CRUD), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/albertogiambone/firestore-swift-crud-1pmd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)