【问题标题】:Polymerfire - Cannot read property 'push' of undefinedPolymerfire - 无法读取未定义的属性“推送”
【发布时间】:2017-04-01 08:08:46
【问题描述】:

我有类似this 的问题,除了我使用来自this 的聚合物模板。

我在声明<firebase-app> 的页面和使用<firebase-query> 的页面中导入了所有的polymerfire 引用。不工作。

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

更多信息,这里是代码的sn-p:

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/app-pages/app-page-new-stuff/app-page-new-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)."

有人吗?

【问题讨论】:

    标签: firebase polymer polymerfire firebase-polymer


    【解决方案1】:

    经过几天的挫折,它起作用了。显然。

    TL;DR

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

    说明

    查看this,似乎firebase 在__computeApp 方法中初始化了应用程序,并且name 是一个可选变量,但如果提供了它将在初始化中使用。忽略它,一切都应该没问题。就我而言,它适用于&lt;firebase-app&gt;&lt;firebase-auth&gt;&lt;firebase-query&gt;(用于推送数据,因为我仍然卡在using firebase-query for fetching data

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

    1. 检查 firebase 查询属性。参考this
    2. 尝试在声明&lt;firebase-app&gt; 的同一html 文件中导入polymerfire/polymerfire.html。参考this
    3. 更新polymerfire。只需卸载并重新安装它可能会解决此问题(对于那些使用过时版本的 polymerfire)
    4. 从任何 firebase 元素中省略 name 属性。我知道当我在浏览器控制台中输入firebase.database() 时,我的&lt;firebase-app&gt; 已成功初始化,它不再报错。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多