2017-08-08 109 views
0

我正在创建一个dom模块来在div中显示我的firebase数据。我跟随在https://www.youtube.com/watch?v=9AHDSGitDP0&t=639s Polycast视频,但firebase查询组件不拉入数据。控制台中除登录的用户数据外不会显示任何数据,并且没有错误。我看到其他人在用聚合物火力拉动数据时遇到了问题,我在这里尝试了解决方案,但没有运气:Polymer + Firebase (Polymerfire): <firebase-query> not working inside single page app view (with <firebase-app> located in my-app.html)没有使用polymefire firebase-query元素返回的数据

有人可以帮忙吗?

在我的主HTML页面我有以下几点:

<head> 
    <meta charset="utf-8"> 
    <link rel="stylesheet" href="stylesheets/style.css"> 
    <link rel="import" href="../bower_components/polymer/polymer.html"> 
    <link rel="import" href="../bower_components/polymerfire/polymerfire.html"> 
    <link rel="import" href="../bower_components/polymerfire/firebase-app.html"> 
    <link rel="import" href="../bower_components/polymerfire/firebase-database-script.html"> 
    <link rel="import" href="../bower_components/webcomponentsjs/webcomponents-lite.js"> 
    <link rel="import" href="elements/browse-events.html"> <!-- my custom component --> 
</head> 

<body> 
      <firebase-app 
       api-key="" 
       auth-domain="" 
       database-url="" 
       project-id="" 
       storage-bucket="" 
       messaging-sender-id=""> 
      </firebase-app> 

      <!-- my custom component --> 
      <browse-events></browse-events> 

</body> 

下面是我的组件的文件中的代码(浏览-events.html)

<!-- dependencies --> 
<link rel="import" href="../bower_components/polymer/polymer.html"> 
<link rel="import" href="../bower_components/polymerfire/polymerfire.html"> 
<link rel="import" href="../bower_components/polymerfire/firebase-app.html"> 
<link rel="import" href="../bower_components/polymerfire/firebase-database-script.html"> 
<link rel="import" href="../bower_components/polymerfire/firebase-database-behavior.html"> 
<link rel="import" href="../bower_components/polymerfire/firebase-query.html"> 

<dom-module id="browse-events"> 
    <template> 
     <firebase-query 
         id="query-all" 
         app-name="authtest-54513" 
         path="/events" 
         data="{{events}}"> 
     </firebase-query> 

     <template is="dom-repeat" items="[[events]]" as="event"> 
      <div> 
       <h1>[[event.title]]</h1> 
      </div> 
     </template> 
    </template> 

    <script> 
     Polymer({ 
      is:'browse-events', 
      properties: { 
       events: { 
        type: Object 
       } 
      } 
     }); 
    </script> 
</dom-module> 

回答

1

如果您使用火力的应用程序名称 - 您需要在firebase-app中指定name。如果你在你的应用中只使用一个firebase-app,你可以在firebase-appapp-name中忽略name

物业events可能是一个数组,而不是一个对象:

如果查询的子节点的对象(大多数情况下),data将 是那些对象的数组添加了一个额外的$key场到 代表了关键。如果子节点是非对象叶节点值,则 data将是结构为{$key: key, $val: val}的对象的数组。 https://github.com/firebase/polymerfire/blob/master/firebase-query.html

在一个侧面说明:您只需要输入你的firebase-query元素browse-events里面。 Firebase查询将导入它自己运行所需的脚本。 (同样适用于firebase-app在你的主html页面)

+0

谢谢,修正了它,特别是当我从firebase-query中拿走应用程序名称时。非常感谢! – greynolds