Как реализовать слушатель «только добавленную стоимость», используя FireBaseDatabase.net - PullRequest
0 голосов
/ 24 февраля 2020

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

using Firebase.Database;
using Firebase.Database.Query;
using System.Reactive.Linq;
...
var firebase = new FirebaseClient("https://dinosaur-facts.firebaseio.com/");
var observable = firebase
  .Child("dinosaurs")
  .AsObservable<Dinosaur>()
  .Subscribe(d => Console.WriteLine(d.Key));

Но код кажется, запускает все изменения, сделанные в дочернем элементе, и возвращает все его дочерние элементы каждый триггер. Это становится проблематичным c, поскольку я обрабатываю изменения синхронно. Итак, есть ли способ сделать его эффективным слушателем «только с добавленной стоимостью»?

1 Ответ

1 голос
/ 25 февраля 2020

Если вы добавите наблюдателя на /dinosaurs, то каждый раз, когда что-то случится под dinosaurs, вы получите целое JSON из /dinosaurs. Невозможно получить только изменения, хотя большинство встроенных Firebase SDK фактически синхронизируют только то, что изменилось в сети.

Если вы хотите получить более детализированные данные, рассмотрите возможность хранения этих более детализированных данных. Например, если вы хотите обрабатывать только дельту в своем клиенте, рассмотрите возможность хранения только дельты в отдельном узле в вашей базе данных. И затем, когда вы слушаете только этот узел, вы получаете только обновления и можете их обрабатывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...