Как отключить Firebase Realtime Database для записи iOS в автономном режиме - PullRequest
0 голосов
/ 12 декабря 2018

У меня был случай, когда база данных firebase возвращала успех при вызове setValue() без интернета.После успеха значение не обновляется в базе данных.Я использую код следующим образом (в Swift):

Database.database().reference().child("key").setValue("something") { (error:Error?, ref:DatabaseReference) in
        if error != nil {
            // Show error in UI
        } else {
            // Show done in UI
        }
}

Я прочитал документ, и он говорит, что база данных Firebase использует автономную запись.Как мы можем отключить это?

Запись данных в автономном режиме

Если клиент потеряет подключение к сети, ваше приложение продолжит работать правильно.

Каждый клиент, подключенный кБаза данных Firebase поддерживает собственную внутреннюю версию любых активных данных.Когда данные записываются, они сначала записываются в эту локальную версию.Затем клиент Firebase синхронизирует эти данные с удаленными серверами баз данных и другими клиентами на основе «максимальных усилий».

p / s: я отключил постоянную автономную функцию

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Firebase основан на предпосылке, что он обрабатывает прерывистую потерю соединения (главным образом) прозрачно для пользователя и разработчика.Нет возможности отключить локальные записи, пока клиент не подключен к серверу.

Но вы можете реализовать это самостоятельно, прослушивая .info/connected и подавляя операции записи в своем приложении, когда это местоположение равно false.Подробнее об этом см. обнаружение состояния соединения в документации Firebase.

0 голосов
/ 12 декабря 2018

Согласно документации, лучше использовать keepSynced(false), когда приложение не подключено.

https://firebase.google.com/docs/database/ios/offline-capabilities

let scoresRef = Database.database().reference(withPath: "scores")
scoresRef.keepSynced(false)
...