【问题标题】:No data returned using polymefire firebase-query element使用 polymefire firebase-query 元素没有返回数据
【发布时间】:2017-08-08 15:15:59
【问题描述】:

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

有人可以帮忙吗?

在我的主 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>

这是我的组件文件 (browse-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>

【问题讨论】:

    标签: javascript firebase firebase-realtime-database polymer polymerfire


    【解决方案1】:

    如果您在 firebase-query 中使用 app-name,您需要在 firebase-app 中指定 name。如果您在您的应用程序中只使用一个firebase-app,您可以在firebase-app 中省略name,在您的其他polymerfire 元素中省略app-name

    属性events 可能是一个数组而不是一个对象:

    如果查询的子节点是对象(大多数情况),data 将 是这些对象的数组,其中添加了一个额外的 $key 字段 代表钥匙。如果子节点是非对象叶值, data 将是结构 {$key: key, $val: val} 的对象数组。 https://github.com/firebase/polymerfire/blob/master/firebase-query.html

    附带说明:您只需在browse-events 元素中导入firebase-query。 Firebase-query 将导入它自己运行所需的脚本。 (与您的主 html 页面中的 firebase-app 相同)

    【讨论】:

    • 谢谢,解决了这个问题,特别是当我从 firebase-query 中删除应用程序名称时。非常感谢!
    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2016-09-03
    • 2015-07-17
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多