使用仅限浏览器的应用程序,firebase-element聚合物组件无响应

时间:2014-08-08 00:47:08

标签: javascript firebase polymer

我正在尝试使用仅限浏览器的应用程序(即仅提供的静态文件,或来自file://)使用Web组件/聚合物和firebase-element从firebase获取信息。

调整路径,并将--allow-file-access-from-files添加到我的chrome启动后,我已经从以下html页面中消除了所有控制台错误,但现在我什么都没得到:(不是香肠。也不是我可以找出如何调试它。我是否需要添加一个简单的登录组件?是否有我遗失的某个日志?(我在firebase本身找不到一个)。

我尝试添加数据更改触发器事件,但这似乎也没有触发:(

非常感谢您的想法:)

<!doctype html>
<html>
<head>
  <title>eSS Firebase Test</title>
<!--
-->
  <script src="./components/platform/platform.js"></script>
  <link rel="import" href="./components/polymer/polymer.html">
  <link rel="import" href="./firebase-import.html">

  <style>
  </style>
</head>
<body unresolved>

    <firebase-element id="base" location="https://<--somefirebase-->.firebaseio.com/" log data="{{data}}" keys="{{keys}}" on-data-change="{{dataChange}}"></firebase-element>

    <h3>My Firebase Data</h3>

    <template repeat="{{key in keys}}">
      <p>{{key}}: {{data[key]}}</p>
    </template>

    <script type="text/javascript">
    dataChange = function(event) {
        console.log('data change!')
        console.log('change: ', event.detail.name, ':', event.detail.value);
            }
    </script>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

聚合物元素需要运行服务器。最简单的方法是从Python尝试simpleHTTP服务器(假设你安装了python)

版本3看起来像这样

python -m SimpleHTTPServer 8000

版本2不同(用2.7测试):

python -m SimpleHTTPServer 8000

如果已安装LAMP堆栈,您也可以使用它。

查看代码,导入了错误的元素。您需要导入firebase-element(内部使用firebase-import),而不是firebase-import。代码应如下所示

<!doctype html>
<html>
<head>
  <title>eSS Firebase Test</title>
<!--
-->
  <script src="./components/platform/platform.js"></script>
  <link rel="import" href="./components/polymer/polymer.html">
  <link rel="import" href="./firebase-element.html">

  <style>
  </style>
</head>
<body unresolved>

    <firebase-element id="base" location="https://<--somefirebase-->.firebaseio.com/" log data="{{data}}" keys="{{keys}}" on-data-change="{{dataChange}}"></firebase-element>

    <h3>My Firebase Data</h3>

    <template repeat="{{key in keys}}">
      <p>{{key}}: {{data[key]}}</p>
    </template>

    <script type="text/javascript">
    dataChange = function(event) {
        console.log('data change!')
        console.log('change: ', event.detail.name, ':', event.detail.value);
            }
    </script>

</body>
</html>