我有一张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]');
答案 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);
});
});