Я создал простую страницу с несколькими вкладками. Каждая вкладка загружает фид (коллекцию / список) статей из Firebase и отображает карточки на странице. Все работает так, как я хотел, пока я не попытался сохранить посещенные каналы в indexeddb
с помощью 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>
What I want to do is cache each feed into indexeddb
as an entry (feed name as key and the data as value), so they can be loaded when the app is offline. That's basically what app-indexeddb-mirror
is for, right?
Однако я не могу разобраться в потоке данных между firebase-query
и app-indexeddb-mirror
, и при переключении вкладок я продолжаю перезаписывать / очищать indexeddb
запись.
Я что-то делаю неправильно? Спасибо.
firebase-query
изменяются,app-indexeddb-mirror
кэширует данные. Это означает, что при переключении вкладок данные изменятся, потому чтоpath
наfirebase-query
изменяется, что, в свою очередь, приведет к повторному кэшированию данных элементомapp-indexeddb-mirror
. - person Ben Thomas   schedule 26.09.2016