Firestore - iOS реагирует на работу родного приложения в автономном режиме - PullRequest
0 голосов
/ 29 апреля 2018

Приложение, которое я создал, выполняет некоторые запросы и обновления Firestore в автономном режиме, даже если подключение доступно. Я пробежал firebase.firestore().settings({persistence: false})

При сбросе симулятора к заводским настройкам при первом запуске он выполняет запросы в онлайн-режиме, но затем быстро возвращается в автономный режим.

Существует ли вероятность того, что из-за сбоя записи он автоматически перейдет в автономный режим без возможности восстановления? Есть ли способ проверить, находится ли Firestore в данный момент онлайн или офлайн? Есть ли способ заставить запросы синхронизироваться с серверами?

Использование RNfirebase 4.0.6, Xcode 9.3, iOS 11.3, реактивная версия 0.54. Также бывает на iOS 10.3

1 Ответ

0 голосов
/ 30 апреля 2018

Примерно после 20 часов попыток это исправить я нашел причину.

При вызове firebase.firestore().collection('someCollection').doc('docId').set(...), когда docId указывает на несуществующий DocumentReference, внутреннее устройство RNfirebase закрывает очередь исходящей записи. Чтение возможно, но не пишет.

Чтобы исправить проблему, все, что мне нужно было сделать, это изменить:

firebase.firestore().collection('someCollection').doc('docId').set(someObject)

до

firebase.firestore().collection('someCollection').doc('docId').update(someObject, { merge: true })

...