如何在Firebase中的特定位置监听数据更改?

时间:2016-07-11 13:41:05

标签: javascript firebase firebase-realtime-database

我正在使用Firebase作为移动APP的实时数据库我正在开发(JS Web SDK),结构如下图所示,密钥=电子邮件,每个密钥都有移动用户信息,以及GPS协调node =“path”内的移动位置

如何收听所有电子邮件(用户)的所有“路径”?

enter image description here

3 个答案:

答案 0 :(得分:18)

直接离开Firebase documents

  

value:读取并侦听路径的整个内容的更改。

var ref = firebase.database().ref("users");
firebase.database().ref().on('value', function(snapshot) {
    // Do whatever
});

此功能在启动时将运行一次,对路径下的数据进行每次更改都会再次运行。 snapshot将返回user/的所有内容,这是每次更改都要返回的大量数据。您可以相应地更改ref

答案 1 :(得分:1)

代码中的解决方案:

var ref = new Firebase("https://<your Firebase>/mobile/users");

   users.forEach(function (childSnapshot) {
                // childSnapshot == mobile/users/email

                var data = childSnapshot.val();

                childSnapshot.forEach(function (path) {
                    if (path.key() == 'path') {

                        //create reference for each path
                        var pathRef = path.ref();

                        pathRef.limitToLast(1).on('child_added', function (childSnapshot, prevChildKey) {

                            // now you are listening on all "path" under each user/email

                        })
                    }
                })
            })

答案 2 :(得分:0)

您可以根据需要收听特定事件:

App Transport Security Settings -> Allow Arbitrary Loads (Yes)