2016-08-27 9 views
0

私は各ユーザの連絡先のリストを保持する議題のようなwebappを構築しようとしています。だから、各ユーザーは自分自身の連絡先リストを持つことができます。問題は、特定のユーザーとログを記録するときに、このユーザーが持つ連絡先だけを表示したい場合です。firebaseは特定のユーザのデータを取得します

firebase.database().ref('contacts').orderByChild('uid').equalTo(uid).once('value') 


contacts/ 
    contact-id 
     firstName 
     lastName 
     uid 

これは私が今使っているもので、uidはログインしているユーザーのIDです。 これを行うより良い方法はありますか? ダニエルに事前に感謝します!

+2

「contact-id」とは何ですか? –

答えて

0

このような構造データベースを:

users: { 
    user1: { 
     name: "User 1", 
     contacts: { 
      contact1: true, 
      contact2: true 
     } 
    }, 
    user2: { 
     name: "User 2", 
     contacts: { 
      contact1: true, 
      contact3: true 
     } 
    } 
} 

USER1を交換し、UIDを持つユーザー2。

と連絡先は:

contacts: { 
    contact1: { 
     name: "Contact 1", 
     mobile: 00000 
    }, 
    contact2: { 
     name: "Contact 2", 
     mobile: 11111 
    }, 
    contact3: { 
     name: "Contact 3", 
     mobile: 22222 
    } 
} 

今の瞬間の誰かがログインすると、現在のUIDを取得し、あなたはそれが現在ログインしているユーザーのコンタクトリストを見つけることができます。

firebase.database().ref('users/'+userUID+'/contacts').on('child_added', snapshot => { 
    firebase.database().ref('contacts/'+snapshot.key).on('value', snap => { 
    console.log(snap.val().name); //Print name of persons in contact list 
    }); 
}); 
関連する問題