0

工場/サービスから現在のユーザーIDを取得中にエラーが発生しました。これを削除するとfirebase.auth().currentUser.uidのように見えます。
何か不足していますか?
ユーザーIDを工場から取得することはできますか?firebase現在のユーザーID

.factory("dataFire", ["$firebaseArray", "$firebaseAuth", "$firebaseObject", function($firebaseArray, $firebaseAuth, $firebaseObject){ 
var ref = firebase.database().ref("users/" + firebase.auth().currentUser.uid); 
var user = $firebaseObject(ref); 
return { 
    user: user 

} }]) 

jsfiddleリンク https://jsfiddle.net/ken19net/m8qkdrpu/37/

+0

このコードスニペットから何がうまくいかないかは分かりません。あなたが問題を** minimal ** jsfiddle/jsbinに再現し、あなたの質問からリンクする方法はありますか? –

+0

こんにちは、返信ありがとうございます。 jsfiddleリンクで私の投稿を更新しました。私はすべてのデータベース参照を私のサービスに入れようと計画していました。 –

答えて

0

データベースにリスナーを付けるあなたのコード、実行し、次のエラーがスローされます、その点firebase.auth().currentUser.uidで何の現在のユーザーが存在しないため、ユーザーは。で署名され前

VM603 angular.min.js:118 TypeError: Cannot read property 'uid' of null

今後の質問では、私たちにしばらくお待ちください。

app.controller("appCtrl", function($scope, $firebaseAuth, myService) { 

    $scope.signIn = function() { 
    $firebaseAuth().$signInAnonymously().then(function(user) { 
     var ref = firebase.database().ref("test/" + firebase.auth().currentUser.uid); 
    }); 
    }; 

}); 

注意を上記のように、あなたのコードを実行すると、新しい匿名ユーザーアカウントにユーザーがページをロードするたびに作成すること:

ソリューションは、ユーザが認証された後にリスナーを添付することです。それはあなたが望むものではない場合、認証状態リスナーを使用します。

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    var ref = firebase.database().ref("test/" + firebase.auth().currentUser.uid); 
    } 
}); 

documentation on getting the currently signed in userを参照してください。

+0

おかげでfrank.aの大きな助けになりました –

0

同様の問題が発生している可能性があります。これは役に立ちます。

if (firebase.auth().currentUser !== null) { 
     console.log("user id: " + firebase.auth().currentUser.uid); 

     var ref = firebase.database().ref().child("users/" + firebase.auth().currentUser.uid); 

     var syncUserObject = $firebaseObject(ref); 
     syncUserObject.$bindTo($scope, "data"); 

    } else { 
     console.log("No user currently logged in"); 
    } 

すべてが他の失敗した場合だけJSON.stringify(オブジェクト、ヌル、2);

関連する問題