2016-05-16 16 views
0

私はFirebaseデータベースのユーザノードにユーザの詳細を保存するためにこれまで働いていた機能を作成しました。しかし、今日、それをしようとすると、それは今私が書いたコードは、単に利用者の子としてauth.uidを格納し、そのノード内では、そのユーザのすべてのデータを格納するログアウト時にoffAuthメソッドを呼び出す必要がありますか?

TypeError: Cannot read property 'uid' of null 

を言って、エラーメッセージを返しています。金曜日の時点で、これはいくつかのユーザーのために働いていましたが、今は今、上記のエラーメッセージを生成しています。

これを修正するには、ログアウト時にoffAuthメソッドを呼び出す必要がありますか?もしそうなら、私はこれについてどうやって行くのですか?

これまでのコードは以下のとおりです。

ref.onAuth(function(authData) { 
    ref.child('user').child(authData.uid).set(authData).then(function(auth) { 
     console.log('Data Saved Successfully!'); 
    }).catch(function(error) { 
     console.log(error); 
    }) 
}) 

答えて

0

onAuth()メソッドは、ユーザーの認証状態が変更されるたびに呼び出されます。これは、ユーザーが認証されたときと認証されないときの両方で呼び出されることを意味します。後者の場合、authData引数はnullとなり、コード内でそれを処理する必要があります。 Firebase documentationから

ユーザ認証状態の変化をリッスンするためonAuth()メソッドを使用します。

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 
ref.onAuth(function(authData) { 
    if (authData) { 
    console.log("User " + authData.uid + " is logged in with " + authData.provider); 
    } else { 
    console.log("User is logged out"); 
    } 
}); 

あなたのコードにifがありません。

+0

パーフェクト...それを見逃してかなり愚かな感じ。ありがとう。 –

関連する問題