0

我试图获取我的 Firebase 数据,但 firebase-query 总是返回空数组。

首先,在我的 Firebase 数据中看起来像

/skills
 |___ polymer
 |___ angular
 |___ react

其次,我的聚合物代码如下:

而且我没有在 auth-domain、database-url 和 api-key 部分犯错。

<firebase-app
  name="pick-me-up"
  auth-domain="auth-domain"
  database-url="db-url"
  api-key="my-key">
</firebase-app>

<firebase-query
  id="query"
  app-name="pick-me-up"
  path="/skills/"
  data="{{data}}">
</firebase-query>

<template is="dom-repeat" items="{{data}}" as="skill">
  <li class="item">{{skill}}</li>
</template>

脚本代码是:

Polymer({
  is: 'pick-me-up-skills',

  properties: {
    data: {
      type: Object,
      notify: true
    }
  },

  observers: [
    '_dataChanged(data.*)'
  ],

  _dataChanged: function(newData, oldData) {
    console.log(newData);
  }
});

而且我还将我的 Firebase 规则更改为:

{"rules":{".read":true,".write":"auth != null"}}

我真的不知道哪一部分是错的。在控制台中,newData总是等于[]

4

2 回答 2

1
<firebase-app
    auth-domain="glass-turbine-148103.firebaseapp.com"
    database-url="https://glass-turbine-148103.firebaseio.com"
    api-key="[secret]">
</firebase-app>
<firebase-document
    id="documentStores"
    path="/[[saleBranch]]/stores"
    data="{{stores}}">
</firebase-document>
<firebase-query
    id="queryProducts"
    path="/[[saleBranch]]/products"
    data="{{products}}">
</firebase-query>

这里saleBranch是:“更新销售数量演示”

我也遇到了这个问题,但是app-name从元素中删除后它可以工作

错误path也会导致错误,您可以尝试/从路径中删除

于 2016-12-06T08:58:35.150 回答
0

实际上,我没有将 firebase-app 和 firebase-query 元素放入同一个文件中。

现在,我把它放到同一个文件中,然后它就可以工作了。

但我还有 1 个问题。

我可以将这些元素拆分为不同的文件吗?

如果我需要在其他文件中进行其他查询,是否应该再次将 firebase-app 元素放入每个文件中?

这些是我的导入语句...

在pick-me-up-app.html

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/app-layout/app-drawer/app-drawer.html">
<link rel="import" href="../bower_components/app-layout/app-drawer-layout/app-drawer-layout.html">
<link rel="import" href="../bower_components/app-layout/app-header/app-header.html">
<link rel="import" href="../bower_components/app-layout/app-header-layout/app-header-layout.html">
<link rel="import" href="../bower_components/app-layout/app-scroll-effects/app-scroll-effects.html">
<link rel="import" href="../bower_components/app-layout/app-toolbar/app-toolbar.html">
<link rel="import" href="../bower_components/app-route/app-location.html">
<link rel="import" href="../bower_components/app-route/app-route.html">
<link rel="import" href="../bower_components/iron-pages/iron-pages.html">
<link rel="import" href="../bower_components/iron-selector/iron-selector.html">
<link rel="import" href="../bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="../bower_components/paper-tabs/paper-tabs.html">

<link rel="import" href="pick-me-up-icons.html">
<link rel="import" href="shared-styles.html">

在pick-me-up-skills.html

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="shared-styles.html">

<link rel="import" href="../bower_components/iron-icon/iron-icon.html">

<link rel="import" href="../bower_components/polymerfire/firebase-app.html">
<link rel="import" href="../bower_components/polymerfire/firebase-query.html">
<link rel="import" href="pick-me-up-skill-card.html">

pick-me-up-skills 元素只是pick-me-up-app 中的页面。

首先,我将 firebase-app 放入 pick-me-up-app.html 文件中。

我将 firebase-query 放入 pick-me-up-skills 文件中。

但它不起作用,所以我将 firebase-app 移动到 pick-me-up-skills 文件中。

然后它就起作用了。

于 2016-12-07T07:01:47.193 回答