Firestore 스위프트 CRUD

iOS UIKit🥳용 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()

좋은 웹페이지 즐겨찾기