UUIDと初期画面


UUID


テストの時は私の機械しか使わなかったので、消防栓全体を私のものにしました.ただし、アプリケーションを商業化するには、すべてのデバイスでFirebaseを使用し、自分の場所を指定する必要があります.

UUID


:Universally Unique Identifierの略語、汎用一意識別子
汎用一意識別子は、ソフトウェアの構築に使用される識別子基準を表します.
以前はiOSのデバイスを区別するためにiPhoneのID番号と同じUDID(Unique Device Identifier)デバイス一意識別子を使用していましたが、個人情報の問題でUIDを使用することをお勧めします.
let Uid = UIDevice.current.identifierForVendor!.uuidString
UUIDは、Verder値により、SWIFTで上記のコードで得ることができる.
UUIDをFirebase Collectionとして使用し、異なる機器で使用しても区別できます.

FireStore Folder


FireStoreは、UUIDを使用してフォルダを作成して画像を格納することで、区別が可能になります.
storageRef.child(Uid + "/" + filePath).putData(data, metadata: metaData)
childに文字のみを入力すると、画像は名前で保存されますが、/を入力すると、前の文字はフォルダ名で保存され、後の文字は写真名で保存されます.
写真をダウンロードする際にもパスに「フォルダ名/写真名」を付けることができます.

基本カテゴリ


ユーザーはアプリケーションを初めて受信したとき、何も保存しませんでした.カテゴリとグループは格納場所の必須項目であるため、組み込みのカテゴリとグループが作成されます.
func downloadList(){
    let docRef = db.collection("category").document(Uid)
    docRef.getDocument { (document, error) in
        if let document = document, document.exists {
            // uuid에 맞는 카테고리 있으면 받아오기
        } else {
            // 처음이라 만들어진 카테고리가 없으면 기본 카테고리 만들기
            let basicCategory: [String: [String]] = [
                "items": ["카페", "음식점", "디저트", "베이커리", "액티비티", "야외"],
                "group": ["기본", "친구", "가족", "혼자"]
            ]
            self.db.collection("category").document(Uid).setData(basicCategory) { err in
                    if let err = err {} 
                    else {
                       self.downloadList() // 다시 카테고리 받아오기
                    }
                }
            }
        }
    }
Firebaseからカテゴリリストを取得した場合、エラーが発生した場合は、デフォルトのカテゴリを保存して再ロードします.

行ってみたい!初期化


行ったことがあると言って、点数や回数を左右して操作してから行ったことがない場合は、点数、初期化回数、初期化スコアを初期化します.
    @IBAction func switchOn(_ sender: UISwitch){
        if sender.isOn == true{
            for btn in rateButtons{
                btn.isEnabled = true
            }
            lblVisit.text = "가봤어요!"
            starSlider.isEnabled = true
            stepper.isEnabled = true
        }else{
            for btn in rateButtons{
                btn.isEnabled = false
                btn.setImage(UIImage(systemName: "star"), for: .normal)
            }
            lblRate.text = "0.0"
            lblVisit.text = "가보고 싶어요!"
            starSlider.isEnabled = false
            stepper.value = 0
            lbltTryCount.text = "0회"
            stepper.isEnabled = false
        }
    }

初期画面


作成する
Wikipedia:共通の一意の識別子