如果以下代码中的位置(firebaseURL)包含用户值(例如auth.uid),则会刷新firebase-collection 数据从firebase-auth登录。我正在使用Polymer 1.6.0
<firebase-auth id="auth"
location="[[firebaseURL]]"
provider="{{provider}}"
params="{{params}}"
user="{{user}}">
</firebase-auth>
<firebase-collection
location="[[firebaseURL]]"
data="{{messages}}">
</firebase-collection>
这是因为从firebase-auth登录后,用户值会发生变化并更改位置值,刷新来自的数据火力收集。
但是,如果位置路径不包含用户值,数据将不会显示在登录状态,你必须刷新页面才能实现。
到目前为止,我找到解决此限制的唯一方法是有点hackish。
我必须修改firebase-collection的html代码,如下所示:
<firebase-collection
location="[[_location(user)]]"
data="{{messages}}">
</firebase-collection>
像这样添加_location()函数,强制firebase-collection 数据刷新并显示登录
_location: function(u){
// hacking - to trigger the update firebase-collection/document on-login / on-user-change
return this.user ? this.firebaseURL : "";
}
它有效,但对我来说并不合适。
有更好的方式,更多的聚合方式吗?
由于
答案 0 :(得分:1)
您可以使用dom-if
在firebase-collection
上有条件地标记user
:
<template is="dom-if" if="[[user]]" restamp>
<firebase-collection
location="[[firebaseURL]]"
data="{{messages}}">
</firebase-collection>
<template>