2016-10-11 1 views
0

私はすべてのマーカーを公開しているGoogle Mapを持っています。認証された/ログインしたユーザーだけがマーカーと関連情報をDBに書き込むことができます。Googleマップのすべてのマーカーを取得する(現在ログインしているユーザーだけでなく)

私の理解では、誰もがmapinfoルートを読むことができるようになり、ログインしたユーザーだけがそれに書き込むことができ、それが私の希望です。私はから現在の認証されたユーザーを削除する場合、私は思っ

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

:私は認証されたユーザをデータベースから読み取るしようとすると、私は唯一の認証されたユーザーのマーカーを取得

"mapinfo":{ 
    ".read" : true, 
    "$user_id": { 
      ".write": "$user_id === auth.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); 
     }); 
    }); 
関連する問題