我尝试遵循有关如何设置实时流式处理代码的说明,该代码将处理对孩子所做的更改为described here。
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));
但是该代码似乎触发了对该子项所做的所有更改,并在每次触发时返回其所有子项。当我同步处理更改时,这将成为问题。因此,有没有办法使它成为高效的“仅增值”侦听器?
答案 0 :(得分:1)
如果您在/dinosaurs
上添加观察者,那么只要dinosaurs
下发生任何事情,您都会得到/dinosaurs
的整个JSON。即使大多数本地Firebase SDK实际上仅同步在线上已更改的内容,也无法仅获取更改。
如果要获取更多的粒度数据,请考虑存储该粒度数据。例如,如果您只想在客户端中处理增量,请考虑仅将增量存储在数据库的单独节点中。然后,当您仅收听该节点时,您将仅获得更新并可以处理这些更新。