Polymer: firebase DB not updating using firebase-element

五迷三道 提交于 2019-12-01 09:50:08

As per my initial assumption (which was completely wrong), I thought the behavior had something to do with firebase-document element, infact the behavior is well defined inside the Polymer's Data Binding system.

Solution 1: Replace the whole property.

this.stats = {count: 2};

Solution 2: Let the system know a Path Binding has been updated.

this.stats.count = 2;
this.notifyPath('stats.count', this.stats.count);

Solution 3: Let the Polymer handle the path binding stuff for you.

this.set('stats.count', 2);

Straight from the docs:

This system “just works” to the extent that changes to object sub-properties occur as a result of being bound to a notifying custom element property that changed. However, sometimes imperative code needs to change an object’s sub- properties directly. As we avoid more sophisticated observation mechanisms such as Object.observe or dirty-checking in order to achieve the best startup and runtime performance cross-platform for the most common use cases, changing an object’s sub-properties directly requires cooperation from the user.

Specifically, Polymer provides two methods that allow such changes to be notified to the system: notifyPath(path, value) and set(path, value), where path is a string identifying the path (relative to the host element).

Also there is a Polycast where Rob Dodson explains this stuff in great detail.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!