简单查询Firebase数据库

时间:2017-03-23 18:19:29

标签: javascript angularjs firebase firebase-realtime-database nosql

我在Firebase上创建了一个数据库,其结构如下:

employees
    employee-id
        name: "Jhon Doe"
        bio: "Software Developer"
        birthday: "03/23/1986"
recognitions
    recognition-id
        date: "03/23/2017"
        employee: employee-id
        type: "Team Working"

如何在同一个对象中使用员工的数据从我的数据库中获取所有识别

我正在使用AngularJS在网上开发这个。

2 个答案:

答案 0 :(得分:1)

您可以创建自己的对象,因为Firebase没有数据库端的连接功能。

var bigObject = {};
// Find all recognitions
var ref = firebase.database().ref("recognitions");
ref.once("value").then(function(snapshot) {
    bigObject = snapshot.val();

    // Loop through all recognitions
    for(o in bigObject) {
        var ref2 = firebase.database().ref("employees").child(bigObject[o].employee);
        ref.once("value").then(function(snapshot2) {
            bigObject[o].employee = snapshat2.val();
        }
    }
});

你会得到这样的东西:

recognitions
    recognition-id
        date: "03/23/2017"
        employee
            name: "Jhon Doe"
            bio: "Software Developer"
            birthday: "03/23/1986"
        type: "Team Working"

如果您使用的是JavaScript SDK(没有标记AngularFire)

,这将有效

答案 1 :(得分:1)

我发现使用唯一ID在不同引用之间连接的正确方法是以下代码:

var bigObject = {};

// Find all recognitions
var ref = firebase.database().ref('recognitions');
ref.once('value').then(function(snapshot) {
    bigObject = snapshot.val();
    // Loop through all recognitions
    for (o in bigObject) {
        var ref2 = firebase.database().ref('employees').child(bigObject[o].employee);
        ref2.once('value').then(function(snapshot2) {
            bigObject[o].profile = snapshot2.val();
            // Bind the content to the view
            $scope.$apply(function() {
                $scope.data = bigObject;
            });
        });
    }
});