检索Google地图的所有标记(不仅仅是当前登录的用户)

时间:2016-10-11 05:34:29

标签: javascript firebase firebase-realtime-database

我有一张Google地图,其中所有标记都可以公开获取。只有经过身份验证/登录的用户才能将标记和相关信息写入数据库。

我的理解是,下面的规则允许任何人阅读mapinfo路由,只有登录用户才能写入,这就是我想要的。

"mapinfo":{
     ".read" : true,
    "$user_id": {
          ".write": "$user_id === auth.uid",
    },
},

当我尝试使用经过身份验证的用户从数据库中读取数据时,我只获得经过身份验证的用户标记(如预期的那样):

var mapitems = firebase.database().ref('mapinfo/'+firebase.auth().currentUser.uid);

我想如果我从路线中删除当前经过身份验证的用户,那么我会检索所有标记:

var mapitems = firebase.database().ref('mapinfo/');

这将返回结果,但不会返回预期的数据结构。

如何归还所有这些结果?是否可以这样说:

var mapitems = firebase.database().ref('mapinfo/[ANY-USER]');

1 个答案:

答案 0 :(得分:0)

我通过迭代snapshop.val()并将值(对象)推送到mapInfoItems数组来对此进行排序。

    var mapitems = firebase.database().ref('mapinfo/');
    mapitems.on('child_added', function(snapshot){
        $.each(snapshot.val(), function(key, value) {
            mapInfoItems.push(value);
            deferred.resolve(mapInfoItems);
        });
    });