swift firestore检查文件是否存在

ben*_*661 3 swift google-cloud-firestore

使用swift和firestore我想检查"Taken User Names"集合以查看是否已经使用了用户名,如果它已经提醒用户它已经使用,否则如果它仍然可用我想要创建文件

我想要做的要点是在下面排除,我可以保存数据没有问题虽然它检查,看看它的文件是否存在然后采取行动,我无法弄清楚

func nextButtonPressed(){

     let db = Firestore.firestore()

    if usernameTextField.text != ""{
        guard let username = usernameTextField.text else { return }
        let docRef = db.collection("Taken User Names").document(username)
        // check if username exists{
        //if exists alert user "sorry user name taken
    } else {
        // if user name doesn't exist 
        db.collection("Taken User Names").document("trinidad")
                .setData(["Taken User Name" : (username)]) {
            (error: Error?) in
                if let error = error {
                   print("\(error.localizedDescription)")
                } else {
                   print("document was succesfully created and written")
                }
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

exc*_*obe 10

以更干净的方式:

let docRef = db.collection("collection").document("doc")
docRef.getDocument { (document, error) in
       if document.exists {
         print("Document data: \(document.data())")
      } else {
         print("Document does not exist")
      }
}
Run Code Online (Sandbox Code Playgroud)

  • 请记住,documentSnapshot 是可选值,因此您不能编写 document.exists,因为该变量可以为 null。你可以这样做: if let documentSnapshot = documentSnapshot, documentSnapshot.exists { } (2认同)

ben*_*661 6

func nextButtonPressed(){

   let db = Firestore.firestore()

   nextButton.isEnabled = false

    if usernameTextField.text != ""{

        guard let username = usernameTextField.text else { return }

        guard let uid = Auth.auth().currentUser?.uid else { return }

        let docRef = db.collection("Taken User Names").document(username)

        docRef.getDocument { (document, error) in
            if let document = document {


                if document.exists{
                    print("Document data: \(document.data())")

                    self.alertTheUser(title: "Username Taken", message: "please choose again")

                      self.nextButton.isEnabled = true

                } else {

                print("Document does not exist")



                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)