2

我构建了一个包含多个选项卡的简单页面。每个标签都会加载Firebase中的文章供稿(收集/列表)并在页面上呈现卡片。一切正常,直到我试图坚持访问的饲料indexeddbapp-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-queryapp-indexeddb-mirror之间的数据流头,我不断得到indexeddb条目覆盖/切换标签时切换。

有什么我不是在做对吗?谢谢。

+0

当来自firebase-query的数据发生变化时,app-indexeddb-mirror会缓存数据。这意味着当切换标签页时,数据将会改变,因为firebase-query中的'path'发生了变化,这将导致'app-indexeddb-mirror'元素重新缓存数据。 –

+0

我吸引了一些观察员打印日志,它确实看起来像你说的@BenThomas。我仍然无法弄清楚如何以正确的方式做到这一点?你能否介绍一下这方面的情况?谢谢。 – Xiang

+0

一旦selectedFeed改变了,是不是也会立即更改app-indexeddb-mirror的键值(数据绑定是同步的)?在这种情况下,具有前一个键的缓存不应该被清除/清空吗? – Xiang

回答

0

我通过交换firebase-query和app-indexeddb-mirror解决了这个问题。 我从来不知道聚合物中的序列问题,这个顺序也是非常直观的。

+0

没有帮助我。 –

+0

你是什么意思?像indexedDB应该高于firebase-query?我有问题看到铬开发工具中的数据。你看到你的数据吗?这似乎没有什么 – TheeBen