【问题标题】:Firebase database query returns null (function)Firebase 数据库查询返回 null(函数)
【发布时间】:2018-01-06 07:31:46
【问题描述】:

我正在尝试向我的 firebase 帐户添加一些触发功能,但在此之前我想学习 firebase 查询的基础知识,所以我编写了一个 js 文件并通过在命令提示符下编写“node index.js”来测试它。从 youtube 等学习了一些基本查询,并尝试将其集成到我的 js 文件中,但到目前为止完全没有运气。我所有的查询都返回 null,我不明白我在做什么。请你看一下。

提前致谢。

我的数据库结构

<firebasename>
 users
   edRIPg8BcZU9YPbubp7HtQo7phl1
     sayilar: 2653
     status: "ok"
   hakan
     sayilar: 5000
     status: "waiting"
   mehmet
     sayilar: 7000
     status: "ok"

我的数据库规则:

{
  "rules": {
    "users": {
        ".read": true,
        ".write": true
    }
  }
}

我的 index.js 文件:

var firebase = require('firebase');

var config = {
  apiKey: "<my-api-key>",
  authDomain: "<firebasename>.firebaseio.com",
  databaseURL: "https://<firebasename>.firebaseio.com",

};
firebase.initializeApp(config);
ref = firebase.database().ref();
const events = ref.child('users').child('hakan');
const query =events.orderByChild('status').equalTo('ok').limitToFirst(2);

query.on("value", sorunsuz,sorunlu);

function sorunlu(error) {
  console.log("Something went wrong.");
  console.log(error);
}

function sorunsuz(data) {
  
 
    var fruits = data.val();
    console.log(fruits);
}

命令提示符显示

FIREBASE 警告:使用未指定的索引。您的数据将在客户端下载和过滤。考虑将 /users/hakan 中的 ".indexOn": "status" 添加到您的安全规则中以获得更好的性能。

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    代码的问题在这里:

    ref = firebase.database().ref();
    const events = ref.child('users').child('hakan');
    

    事件针对这部分数据:

     users
       hakan
         sayilar: 5000
         status: "waiting"
    

    然后你打电话

    const query =events.orderByChild('status').equalTo('ok').limitToFirst(2);
    

    通过他们的孩子status查询hakan的孩子,这将返回null,因为hakan下的任何一个键都没有孩子status。 看来您想将events 更改为:

    const events = ref.child('users')
    

    然后您将按用户的孩子status 排序用户的孩子。

    【讨论】:

    • 您还需要在 /users/$userid 下添加一个索引以消除该警告(并防止 SDK 下载所有用户数据并在客户端进行过滤)。
    猜你喜欢
    • 2015-04-07
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多