Polymer 1.x:深层链接数据绑定到Firebase

时间:2016-03-14 05:06:52

标签: data-binding firebase polymer polymer-1.0 firebase-polymer

我想通过settings元素在我的Firebase中将firebase-document对象数据绑定到 深层链接 ,如下所示:

我-element.html
<firebase-document location="<my-firebase>/users/uid/settings"
                   data="{{settings}}"</firebase-document>
...
<paper-input label="Name" value="{{settings.name}}"></paper-input>
<paper-input label="Email" value="{{settings.email}}"></paper-input>
...
settings: {
  type: Object,
  notify: true,
  value: {},
...

当我在应用中paper-inputname的{​​{1}}字段中输入值时,我希望看到Firebase值更新。但是,相反,它们不会更新。

完成此深层链接数据绑定的 最佳实践 方法是什么?

修改

I just noticed there are 35 open issues with the firebase-elementthis codelab appears to bypass using it for the same reasons。如果元素尚未完全准备好,请说明。此外,导入似乎不寻常based on the language here

  

想要使用firebase的组件应该依赖于firebase-element并导入firebase.html以免图书馆重复。这些组件不需要使用Polymer或firebase-element,但为了方便起见,我们将import和元素放在一个包中。

很难理解上段所说的内容。所以一个例子会有所帮助。

1 个答案:

答案 0 :(得分:0)

OP代码仅适用于编辑现有记录。它无法在端点创建新记录(例如,在这种情况下为<IRInfo> <protocolNumber>N/A</protocolNumber> <studyTypes>Prospective and Randomized controlled trial</studyTypes> <enrollmentCount>No.of subjects to be recruited at local site: 68</enrollmentCount> <diseaseGroup>Endocrine system</diseaseGroup> <rawStartDate>Feb2004</rawStartDate> </IRInfo> )。

为此,您必须在Firebase端点不存在的情况下添加初始值,如下所示:

  1. 使用/settings测试是否存在初始firebase值。
  2. 如果没有,(有条件地)在on-firebase-value="_firebaseLoaded"方法中添加一个。
  3. 我-element.html
    _firebaseLoaded

    Also, this post might be helpful reading