使用Polymerfire的app-indexeddb-mirror
我构建了一个包含多个选项卡的简单页面。每个标签都会加载Firebase中的文章供稿(收集/列表)并在页面上呈现卡片。一切正常,直到我试图坚持访问的饲料indexeddb
与app-indexeddb-mirror
。使用Polymerfire的app-indexeddb-mirror
这里就是我所做的:
<dom-module id="my-view1">
<template>
<style include="shared-styles">
</style>
<paper-tabs id="tabs"
attr-for-selected="value"
selected="{{selectedFeed}}"
scrollable>
<template is="dom-repeat"
items="[[feeds]]"
as="feed">
<paper-tab value="[[feed.key]]">[[feed.name]]</paper-tab>
</template>
</paper-tabs>
<firebase-query id="[[selectedFeed]]_feed"
app-name="myfirebaseapp"
path="/myfirebaseappdb/feed/[[selectedFeed]]"
data="{{articles}}">
</firebase-query>
<app-indexeddb-mirror
key="[[selectedFeed]]"
data="[[articles]]"
persisted-data="{{persistedArticles}}">
</app-indexeddb-mirror>
<template is="dom-repeat"
items="[[persistedArticles]]"
as="article">
<paper-card image="[[article.image]]" alt="image">
<div class="card-content">
<h1 class="card-text">[[article.title]]</h1>
<h4 class="card-text">[[article.abstract]]</h4>
</div>
</paper-card>
</template>
</template>
<script>
Polymer({
is: 'my-view1',
ready: function() {
this.feeds = [
{name: "Feed1", key: "feed1"},
{name: "Feed2", key: "feed2"},
{name: "Feed3", key: "feed3"},
{name: "Feed4", key: "feed4"}
];
}
});
</script>
我想要做的是缓存中的每个进到indexeddb
作为一款入门(饲料名作为关键字和数据值),使他们能够当应用程序离线时加载。这基本上就是app-indexeddb-mirror
,对吧?
但是,我不能在firebase-query
和app-indexeddb-mirror
之间的数据流头,我不断得到indexeddb
条目覆盖/切换标签时切换。
有什么我不是在做对吗?谢谢。
我通过交换firebase-query和app-indexeddb-mirror解决了这个问题。 我从来不知道聚合物中的序列问题,这个顺序也是非常直观的。
没有帮助我。 –
你是什么意思?像indexedDB应该高于firebase-query?我有问题看到铬开发工具中的数据。你看到你的数据吗?这似乎没有什么 – TheeBen
当来自firebase-query的数据发生变化时,app-indexeddb-mirror会缓存数据。这意味着当切换标签页时,数据将会改变,因为firebase-query中的'path'发生了变化,这将导致'app-indexeddb-mirror'元素重新缓存数据。 –
我吸引了一些观察员打印日志,它确实看起来像你说的@BenThomas。我仍然无法弄清楚如何以正确的方式做到这一点?你能否介绍一下这方面的情况?谢谢。 – Xiang
一旦selectedFeed改变了,是不是也会立即更改app-indexeddb-mirror的键值(数据绑定是同步的)?在这种情况下,具有前一个键的缓存不应该被清除/清空吗? – Xiang