首页 > 解决方案 > 如何在 Firebase 数据库中查询嵌套属性?

问题描述

嗨,我在 firebase 中有一个 noSql 数据库。我想获取 userId 为 288 的对象,我尝试了很多组合,但我无法弄清楚它是如何完成的。到目前为止,这是我的代码:

var refTest= database.ref('conversation')
var query = refTest
                .orderByChild('messages');

    query.on('value', function(data) {

 var a = data.val();
 console.log(a.messages.userId);
console.log(data.val());


});

这是我的“模式”的图像

在此处输入图像描述

当谈到 NoSQL 时,我显然是个菜鸟。我确实了解 SQL 感谢所有帮助

标签: firebasefirebase-realtime-database

解决方案


您可以像这样对嵌套值进行排序/过滤:

var refTest= database.ref('conversation')
var query = refTest.orderByChild('messages/userId').equalTo("288");

query.on('value', function(snapshot) {
  snapshot.forEach(function(child) {
    console.log(child.key);
    console.log(child.val());
  });
});

是必需的forEach,因为可能有多个messages/userId等于 的子节点288


推荐阅读