繁体   English   中英

在 Firebase 实时数据库中查询 orderByChild 不起作用?

[英]Query orderByChild in Firebase Realtime Database not working?

我已经看到了许多正是我需要的帖子和解决方案,但是当我实施它时它不起作用。 我正在使用 Firebase 实时数据库,并且正在尝试在所有“名称”子项中搜索特定名称。 在此示例中,我直接添加了字符串,但将来我将使用基于用户输入的变量。 这是我在 firebase 中看到的数据库结构:

{
  "kjienk24dfwefn" : {
    "FriendID" : "fr1959l9591i4925a",
    "Name" : "Test Dummy2",
    "email": "something@gmail.com",
    "Status" : "InGame"
  },
  "kjienk24kdfiwne" : {
    "FriendID" : "fr2812p8092m3604l",
    "Name" : "Test Dummy",
    "email":"some@something.com"
    "Status" : "Online"
  },
  "kjienk24udfjjo" : {
    "FriendID" : "fr7605h9204f8099g",
    "Name" : "Test Dummy3",
    "email": "fake@fakeemail.com"
    "Status" : "Offline"
  }
}

这是我用来查询“名称”的代码(usersRef 指向“firebase.database().ref()”)。 我在网上看到了很多这样的例子,我不确定我做错了什么。

usersRef.orderByChild("Name").equalTo("Test Dummy").on("value", function(snapshot) {
    //This is where I expect to see Test Dummy on the console.  
    console.log(snapshot.val())
});

编辑:这是 usersRef 的初始化。 读取和写入数据库没有任何问题。 标准 firebaseConfig.:

const fbApp = firebase.initializeApp(firebaseConfig);
const db2 = fbApp.database("https://firebasedatabaseurl.com/")
const usersRef = db2.ref();

用父节点测试: 在此处输入图像描述

提前谢谢大家!

您想从users节点加载数据,但目前在您的代码中的任何地方都没有提及。 所以 Firebase 正在查询数据库的根目录,并且那里的子节点(如users )没有Name属性,所以你没有得到任何结果。

const usersRef = db2.ref().child("users");

或者:

const usersRef = db2.ref("users");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM