Firebase查询加入。需要帮助

时间:2017-09-10 02:48:44

标签: javascript sql firebase

刚开始使用Firebase并喜欢它。 正在观看此视频https://www.youtube.com/watch?v=Idu9EJPSxiY,并希望获得有关特定查询的帮助。如果有人可以帮忙吗?

在下面的架构/结构中,如果我想查询名为“David”的人参加的所有事件,它会是什么?

optimizer.addVertex ( pose );
 optimizer.addVertex ( point );
 optimizer.addEdge ( edge );
 optimizer.addParameter ( camera )

我有点卡住了,想要一些帮助。谢谢。 DB structure

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情(我使用node.js firebase模块来显示示例)

firebase.database().ref('eventAttendees').once('value', function (eventAttendeesList) {
    var events = []; //array to store the events
    eventAttendeesList.forEach(function (eachEvent) { //forEach list of eventAttendees node, Eg: fm
        eachEvent.forEach(function (data) { //forEach value of current eventAttendees, Eg: jey1: "David", key2: "John"
            if (data.val() == "David") {
                firebase.database().ref('events').child(eachEvent.key).once('value', function (snapshot) { // get the event data
                    events.push(snapshot) // add to array of events David attended
                })
            } //end of if
        })// end of eachEvent.forEach
    })// end of eventAttendeesList.forEach
    return events;
})

我可能在某个地方有一些语法错误,但你明白了

  1. 首先查询 eventAttendees 节点(“fm”)下的数据列表并循环显示每个值
  2. 在eventAttendees节点的每个值中都有key1,key2,我们需要另外循环来获取数据(“David”,“John”)。在这里,我们将检查数据是否与您正在寻找的人匹配
  3. 如果匹配,我们将在事件节点下使用匹配eachEvent.key的密钥查询firebase以查找事件数据并将其添加到我们的事件数组中