2016-10-11 63 views
0

我有一个Google Map,其中所有标记都将公开提供。只有经过身份验证/登录的用户才能将标记和相关信息写入数据库。检索Google Map的所有标记(不仅仅是当前登录的用户)

我的理解是,下面的规则将允许任何人阅读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]'); 
+0

很可能您在处理结果列表时出现错误。请分享[重现问题的最简单,完整的代码](http://stackoverflow.com/help/mcve),在这种情况下,将包括如何处理列表(只记录信息很好,如果再现问题)。 –

回答

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); 
     }); 
    }); 
相关问题