Saya bekerja dengan firebase dan saya memiliki fungsi yang mengembalikan janji dari referensi dokumen.

func getCatalogItem(ref: DocumentReference) -> Promise<Catalog> {
        return Promise { seal in
        ref.getDocument() { result, err in
            if err != nil {
                seal.reject(err!)
            } else {
                let data = FirestoreDecoder()
                do {
                    let item = try data.decode(Catalog.self, from: result!.data()!)
                    seal.fulfill(item)
                } catch {
                print("Error")
                }
            }
        }
    }
}

Ini berfungsi dengan baik tetapi satu-satunya adalah tipe pengembalian adalah tipe khusus yang saya dekode dari panggilan referensi dokumen tetapi panggilan itu sendiri sinkron dan itu membuat aplikasi saya mogok dengan kesalahan nihil karena data sebenarnya belum ada di sana.

Inilah baris dan fungsi yang menghasilkan kesalahan (nil)

let item = try data.decode(Catalog.self, from: result!.data()!)

Saya mencoba membuat fungsi lain dengan penangan untuk fungsi firebase dan meneruskan nilai itu ke dekoder tetapi itu juga mengembalikan nihil, dan (saya menggunakan waitkit/promisekit) saya mencoba bermain-main dengan async/menunggu tetapi tidak dapat melakukannya kerja. Bagaimana saya bisa memperbaiki ini?

Tangkapan layar dokumen di database saya: screenshot dokumen yang saya coba akses

Yang juga memberi saya nihil.

0
Agang Dut 3 Januari 2020, 22:09

2 jawaban

Jawaban Terbaik

Kesalahan yang tidak biasa di mana dokumen tertentu yang saya coba akses akan mengembalikan nilai nihil tetapi mencoba dengan dokumen lain memperbaiki masalah, mungkin karena saya salah memberi nama bidang dan akhirnya menghapusnya dan membuat bidang baru dengan nama yang benar, tapi tidak ada cara untuk benar-benar tahu.

1
Agang Dut 5 Januari 2020, 06:14