0

ユーザがFirebaseでサインインした後に、現在認証されているユーザ名を出力しようとしています。VueJsとFirebaseを使用してユーザデータベースにアクセスする方法

現在、VueJsでは.currentUserを取得してからusersデータベースにアクセスしています。スクリーンショットに見られるように、/users/データベース内の現在のユーザUIDと一致するユーザ名を出力しようとしています。問題は、この方法一度username

getName: function() { 
    var userId = firebase.auth().currentUser.uid; 
    return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) { 
    var username = (snapshot.val() && snapshot.val().username); 
    console.log(username) 
    }) 
}, 

firebase_vuejs_username

+0

あなたは正しい 'userId'を取得しましたか? – Hareesh

+0

@Hareeshうんうん、 'userId'をロギングするときに正しいIDが得られます。これは間違った次のステップです。 – scopeak

+0

'var username = snapshot.val()。username' – Hareesh

答えて

0
getName: function() { 
    var userId = firebase.auth().currentUser.uid; 
    return firebase.database().ref('/users/' + 
     userId).on('value', function(snapshot) { 
     if (snapshot.val()) { 
      var obj = snapshot.val(); 
      var userName = snapshot.val().username; 
      console.log('username:', userName) 
     } 
    }); 
} 

は一度だけのノードを呼び出しますが、上のたびに呼び出されます。ログ出力のヌルということです

+0

次のエラーが表示されます: 'Error:Query.on failed:1引数で呼び出されました。少なくとも2を期待します。 ' – scopeak

+1

私のコードを変更し、一度チェックして問題が発生した場合にお知らせください。@scopeak –

+0

それは感謝しました! '.once'の代わりに' .on'を使うことについては、実際には変更されないようなユーザ名を表示するようなものであれば 'once'を使ってはいけませんか? – scopeak

関連する問題