Polymerfire - 无法读取未定义

时间:2017-04-01 08:08:47

标签: firebase polymer polymerfire firebase-polymer

我遇到与this类似的问题,但我使用this中的聚合物模板。

我在声明<firebase-app>的页面和使用<firebase-query>的页面中导入了所有的聚合物参考。不工作。

我后来发现模板使用的是Polymerfire,版本是v0.9.4而不是最新的v0.10.3。我尝试卸载并重新安装新版本。什么都没有改变。

有关其他信息,请参阅以下代码片段:

的src / APP-AUTH / APP-AUTH-firebase.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-auth.html">
<link rel="import" href="../../bower_components/polymerfire/firebase-query.html">
...
<firebase-app name="pwa-demo" api-key="abc" auth-domain="abc" database-url="abc"></firebase-app>

<firebase-auth id="auth" app-name="pwa-demo" signed-in="{{_signedIn}}" user="{{_user}}"on-error="_onAuthError"></firebase-auth>

的src /应用程序的页面/应用程序页面,新的东西/应用程序页面,新stuff.html

<link rel="import" href="../../../bower_components/polymerfire/firebase-auth.html">
<link rel="import" href="../../../bower_components/polymerfire/firebase-query.html">
<link rel="import" href="../../../bower_components/polymerfire/polymerfire.html">
...
<firebase-auth user="{{user}}"></firebase-auth>

<firebase-query id="stuffquery" app-name="pwa-demo" path="/users/[[user.uid]]/events" data="{{events}}"> </firebase-query>
...
_onFormSubmit: function() {   
    this.$.stuffquery.ref.push({
        title: this.$.piTitle.value
    });
}

还有什么我想念的吗?请帮忙。

编辑: 我发现了另外两件奇怪的东西,可能会有所帮助。首先,我无法同时检索数据并将数据从我的应用程序推送到应用程序。其次,当我尝试在浏览器控制台中运行firebase.database()时,我得到"Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app)."

任何?

1 个答案:

答案 0 :(得分:2)

经过几天的挫折,它有效。显然。

<强> TL; DR

我所做的是更新polymerfire并从任何firebase元素中省略name属性。

<强>解释

查看this,似乎firebase在__computeApp方法中初始化应用程序,name是一个可选变量,但如果提供则将在初始化中使用。忽略它,一切都应该没问题。在我的情况下,它适用于<firebase-app><firebase-auth><firebase-query>(用于推送数据,因为我仍然停留在using firebase-query for fetching data

虽然它适用于我的情况,但它可能不一定是正确的解决方案。它可能不适用于您的情况。我花了几天时间才弄明白这一点,对于那些遇到类似问题的人来说,其中一个可能有所帮助:

  1. 检查firebase查询属性。请参阅this
  2. 在声明<firebase-app>的同一html文件中尝试导入polymerfire / polymerfire.html。请参阅this
  3. 更新Polymerfire。只需卸载并重新安装即可解决此问题(对于那些具有过时版本的polymerfire的人)
  4. 从任何firebase元素中省略name属性。我知道当我在浏览器控制台中输入<firebase-app>时,我的firebase.database()已成功初始化,它不会再出错。
  5. 希望它有所帮助。