2017-01-06 12 views
0

Firebaseを使用して、ユーザIDに基づいてユーザのプロファイル情報を表示しようとしています。私は現在、ユーザーIDの下でデータベースにデータを保存することができます。データを取得するためのFirebaseユーザID変数

enter image description here

私は趣味からの一般的な情報を表示することができていますが、ユーザーのデータを表示するために、変数を変更する場合、IDは未定義その後、nullまたはuidですし、私はその理由を把握することはできませんか?ユーザーはログインしており、IDを使用してデータをアップロードできます。

//Display Profile Information 
(function(){     

var user = firebase.auth().currentUser; 
var uid; 

if (user != null) { 
uid = user.uid; 
} 


const preObject = document.getElementById('object'); 
const list = document.getElementById('list'); 

//Displays Hobbies correctly, When changing 'object' & 'hobbies' 
//to 'Users' & uid nothing is shown. 
const dbRefObject = firebase.database().ref().child('object'); 
const dbRefList = dbRefObject.child('hobbies'); 

dbRefObject.on('value', snap=> { 
    preObject.innerText = JSON.stringify(snap.val(), null, 3); 
}); 

dbRefList.on('child_added', snap => console.log(snap.val())); 

}; 

改造:

const dbRefObject = firebase.database().ref().child('Users'); 
const dbRefList = dbRefObject.child(uid); 

私は任意のヘルプやアドバイスのために非常に感謝しています!

答えて

1

dbRefObjectvalueが、特定のユーザーのUIDではなくUsersオブジェクト全体を指しているようです。 (dbRefObjectがdbRefListに変更)これに

dbRefObject.on('value', snap=> { 
    preObject.innerText = JSON.stringify(snap.val(), null, 3); 
}); 

は、これを変更してみてください

dbRefList.on('value', snap=> { 
    preObject.innerText = JSON.stringify(snap.val(), null, 3); 
}); 
+0

ありがとうございました!これはおそらく動作しますが、私のuid変数がまだ未定義として返っている間はそうではありません。なぜそのことを知っていますか?ユーザーは間違いなくログインしています。 – imconnor

+0

申し訳ありませんが、私はそれを逃しました! コードが正しいようです。 'firebase.auth()。currentUser.uid'が' null'になる可能性が最も高いのは、signin呼び出しが返される前に呼び出しを行った場合です。これをサインインコールバックに入れて、コンソールに何を書き込むかを確認してください:console.log(firebase.auth()。currentUser.uid); –

関連する問題