Обновить некоторые поля документа в Firestore - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь обновить некоторые поля документа в Firestore. Ниже приведен код. Но это не работает. Пожалуйста, помогите мне!

@IBAction func btnGoBack(_ sender: Any) {
    
    if usersPaid != true {
        
        let db = Firestore.firestore()
        db.collection("users").document("m8FdPX4zVJ77ZodP8h0T").updateData([
            "titlePage": titlePageOnChanged!,
            "endPage": endPageOnChanged!,
            "pageNumber": pageNumberOnChanged!,
            "passCode": passCodeOnChanged!
        ]) { err in
            if let err = err {
                print("Error updating document: \(err)")
            } else {
                print("Document successfully updated")
            }
        }
    }
    
        performSegue(withIdentifier: "goBack", sender: nil)

}

Ниже скриншот firestore.

скриншот firestore

Ответы [ 3 ]

1 голос
/ 06 августа 2020

Вы должны изменить свой document id на свой Firestore document id с картинки:

document("uDo1jHFTbMJSq4V5146X")

и, как правило,

ваш код должен быть похож на db.collection("users").document(yourUserId).updateData

Писать yourUserId автоматически лучше, чем вручную :)

0 голосов
/ 06 августа 2020

Я разобрался с кодом ниже:

        db.collection("users")
        .whereField("userEmail", isEqualTo: userEmail!)
        .getDocuments() { (querySnapshot, err) in
            if err != nil {
                print("Error updating document: \(err)")
            } else if querySnapshot!.documents.count > 0 {
                let document = querySnapshot!.documents.first
                document!.reference.updateData([
                    "titlePage": titlePageOnChanged!,
                    "endPage": endPageOnChanged!,
                    "pageNumber": pageNumberOnChanged!,
                    "passCode": passCodeOnChanged!
                ])
            }
        }
0 голосов
/ 05 августа 2020

Ваша проблема здесь:

db.collection("users").document("userId").updateData([

Конкретно здесь:

document("userId")

"userId", поскольку строка не является идентификатором документа. Идентификатор документа на фото - uDo1 ....

...