Ketika pengguna mengatur koneksi Internet ke Offline, saya mendapatkan pesan galat berikut ke konsol XCODE:

7.8.0 - [firebase / firestore] [i-FST000001] WriteStream (11ED16098) Aliran kesalahan: 'Tidak tersedia: Resolusi DNS Gagal'

Tetapi bagaimana saya bisa mendeteksi status koneksi secara terprogram? Saya tidak menemukan dokumen apa pun di dokumentasi FireStore mengenai topik itu?

0
Ing. Ron 5 April 2021, 15:23

2 jawaban

Jawaban Terbaik

Biasanya, dalam keadaan ini yang terbaik adalah memantau keadaan koneksi jaringan perangkat, alih-alih mencari kesalahan tertentu. Itu tidak akan memberi tahu Anda ketika Firebase gagal, tetapi itu akan memberi tahu Anda ketika perangkat sedang offline, sehingga Anda dapat mengharapkan kegagalan. Anda dapat menggunakan nwpathmonitor untuk melakukan itu. Contoh implementasi.

Dan bahkan opsi yang lebih bagus adalah mengaktifkan kemampuan offline firebase, yang memungkinkan Anda tidak perlu khawatir jika pengguna sedang offline, dan biarkan firebase menangani sinkronisasi.

2
Kiril S. 5 April 2021, 17:18

FireStore tidak menghasilkan kesalahan koneksi jaringan karena FireStore mampu secara offline sehingga akan mencoba lagi menulis (beberapa menulis, tidak semua) ketika koneksi kembali. Oleh karena itu, Anda harus menentukan ketersediaan jaringan secara independen dari FireStore.

Namun, jika Anda menginginkan pendekatan yang lebih tradisional untuk tugas ini, yang gagal ketika tidak ada koneksi dan tidak secara otomatis mencoba lagi ketika koneksi kembali, Anda dapat melakukannya dalam transaksi firestore karena tidak di-cache secara lokal. Namun, transaksi datang dengan coba lagi otomatis, tetapi tidak untuk alasan konektivitas. Transaksi dapat mencoba lagi secara otomatis ketika dokumen yang terlibat dalam transaksi dimodifikasi (oleh klien lain) sebelum transaksi selesai untuk menjamin mereka adalah atom.

1
bsod 5 April 2021, 16:11