"İTFAİYE DAHİLİ DEĞERLENDİRME BAŞARISIZ: Geçersiz belge referansı. Belge referanslarında çift sayıda bölüm bulunmalıdır, ancak NewGame'de 1 ”
Hızlı programlama üzerinde çalışıyorum ama uygulamamı her çalıştırdığımda aniden çökmeye başlıyor. Aldığım hata mesajı
Konu 1: İstisna: "FIRESTORE INTERNAL ASSERTION FAILED: Geçersiz belge referansı. Belge referanslarında çift sayıda segment olması gerekir, ancak NewGame'de 1"
Hatayı araştırdım ve insanlar db'de birkaç koleksiyonum ve belgem varsa, olma eğiliminde olduğunu söylüyorlar. Ama veritabanım gerçekten çok basit. sadece iki koleksiyon ve bunların içinde belgelerim var. Bu görüntü gibi.

Bir çubuk düğmesine dokunduğumda uygulama çöküyor, bu kod satırları.
@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")
}
}
}
}
}
Yukarıdaki kod HomeViewController adında bir şeyde, ancak AppDelegate.swift dosyasında her zaman hata alıyorum.
Lütfen kimse bana burada neler olup bittiğini ve bunu nasıl düzeltebileceğimi söyleyebilir mi?
Yanıtlar
Sorun şu ki self.docId
, kullanıldığı anda sıfır veya boş dizedir, bu da DocumentReference'ı oluşturan kod için bir yol parçası oluşturmasını engeller. Onu nasıl atadığınızı veya nerede tanımlandığını göremiyoruz, bu yüzden bu hatayı ayıklamanız ve neden beklediğiniz değere sahip olmadığını anlamanız gerekir.