Как обновить пользовательский интерфейс базы данных Firebase в режиме реального времени «push» в автономном режиме - PullRequest
0 голосов
/ 17 января 2019

Я использую реактивную базу-огонь в своем приложении. Проблема, с которой я сталкиваюсь, заключается в том, как обрабатывать обновления пользовательского интерфейса, когда пользователь пытается отправить данные в автономном режиме.

Если пользователь в сети, мы можем использовать метод on () для получения обновлений в реальном времени, но что делать, когда они находятся в автономном режиме. Мы знаем, что отправленные данные хранятся в кэше и отправляются, когда пользователь снова подключен к сети. Могут ли эти кэшированные данные использоваться для достижения моих целей?

Вот код, который я использовал для получения обновлений в реальном времени:

var ref333 = firebase.database().ref(`/user-posts/${uid}/`)
ref333.on('value',function (snap) {
  var s = snap.val();
  console.log("NEW POSTS "+JSON.stringify(s))
})

Код, который я использую для передачи данных.

var postData = { UID: UID, тело: «тело», title: 'title', starCount: 0 };

// Get a key for a new Post.
var newPostKey = firebase.database().ref().child('posts').push().key;
var ref222 = firebase.database().ref(`/posts/${newPostKey}`)
var ref333 = firebase.database().ref(`/user-posts/${uid}/${newPostKey}`)
ref222.push(postData, function (onComplete) {
  console.log("COMPLETED")
  ref333.push(postData,function (onComplete) {
    console.log("NEXT COMPLETED")
  }, function (error) {
    console.log("ERROR IN ",error)
  })
}, function (error) {
  console.log("error == "+error)
})

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Эта проблема была решена добавлением следующих строк кода в ваш собственный код:

https://rnfirebase.io/docs/v5.x.x/core/default-app#Enable-Database-Persistence

0 голосов
/ 18 января 2019

Слушатель .on snspashot должен запускаться даже в автономном режиме. Согласно документам: https://firebase.google.com/docs/database/web/read-and-write

Вы можете использовать событие value, чтобы прочитать статический снимок содержимого. на заданном пути, поскольку они существовали во время события. Этот метод срабатывает один раз, когда слушатель подключен и снова каждый раз данные, включая детей, изменяются.

Это должно работать и в автономном режиме. Если вы не получаете обновления - что-то еще не так.

...