“FIRESTORE INTERNAL ASSERTION FAILED: Referensi dokumen tidak valid. Referensi dokumen harus memiliki jumlah segmen yang genap, tetapi NewGame memiliki 1 ”

Aug 18 2020

Saya sedang mengerjakan pemrograman cepat tetapi setiap kali saya menjalankan aplikasi saya, aplikasi saya tiba-tiba mulai mogok. Pesan kesalahan yang saya dapatkan adalah

Thread 1: Pengecualian: "FIRESTORE INTERNAL ASSERTION FAILED: Referensi dokumen tidak valid. Referensi dokumen harus memiliki jumlah segmen genap, tetapi NewGame memiliki 1"

Saya mencari kesalahan dan orang-orang mengatakan jika saya memiliki beberapa koleksi dan dokumen di db, itu cenderung terjadi. Tapi db saya sangat sederhana. hanya dua koleksi dan di dalamnya saya punya dokumen. Seperti gambar ini.

Ketika saya mengetuk tombol bar, aplikasi macet, yang merupakan baris kode ini.

@IBAction func addPressed(_ sender: UIBarButtonItem) {
    
    performSegue(withIdentifier: K.homeToGameScreen, sender: self)
    
    // create new game array in db & player's ready status -> true
    
    db.collection(K.FStore.newGameCollection)
        .addDocument(data: [K.FStore.gameBoardField: GameBoard.gameBoard, K.FStore.player1Field: playerInfo[K.FStore.nameField]!, K.FStore.player2Field: K.FStore.player2Field, K.FStore.uID: playerInfo[K.FStore.uID]!]) { (err) in
            
            if let err = err {
                print("Error getting documents3: \(err)")
            } else {
                
                self.db.collection(K.FStore.playersCollection).document(self.docId).updateData([K.FStore.isReadyField: true]){ err in
                    if let err = err {
                        print("Error updating player's isReady status: \(err)")
                    } else {
                        print("Document successfully updated")
                    }
                }
            }
    }
}

kode di atas ada dalam sesuatu yang disebut HomeViewController, tetapi saya selalu mendapatkan kesalahan di file AppDelegate.swift.

Adakah yang bisa memberi tahu saya apa yang terjadi di sini dan bagaimana cara memperbaikinya?

Jawaban

1 DougStevenson Aug 18 2020 at 19:04

Masalahnya hampir pasti self.docIdadalah nihil atau string kosong pada saat digunakan, yang mencegahnya membuat segmen jalur untuk kode yang membangun DocumentReference. Kami tidak dapat melihat bagaimana Anda menetapkannya atau bahkan di mana itu ditentukan, jadi Anda harus men-debug ini dan mencari tahu mengapa itu tidak memiliki nilai yang Anda harapkan.