0
サービスを介してコントローラー内のユーザーデータにアクセスしようとしています。私はコントローラーでangularJSを使用してfirebaseオブジェクトから値を取得する
$scope.userData = UserService.getUserData();
console.log($scope.userData.$id)
を使用しますが、そのような役割
$scope.userData = UserService.getUserData();
console.log($scope.userData.role)
などの他のノードにアクセスしようとすることで、正常
$id
にアクセスすることができ、コントローラからデータにアクセスする際にサービスが正しく
{
"$id": "9ecadf8e-a233-48ac-bebf-26b50ea2855d",
"$priority": null,
"branch": "London",
"email": "[email protected]",
"firstName": "John",
"lastLogin": 1467975594697,
"lastLoginPrevious": 1467975348837,
"lastName": "Smith",
"role": "Manager"
}
オブジェクトを返します。
コンソールで「未定義」と表示されます。明らかにこれを正しくやっているわけではありませんが、私が次に試してみたいことに固執しています。ここで
は、あなたはおそらく、非同期の問題を持つことができfirebase
.service('UserService', ['$location', '$firebaseAuth','$firebaseObject', function ($location, $firebaseAuth, $firebaseObject) {
var userData = '';
var ref = new Firebase("https://firebase-url");
var authData = ref.getAuth();
var userUID = authData.uid;
var userRef = new Firebase("https://firebase-url/Users/" + userUID);
var userData1 = $firebaseObject(userRef);
return {
getUserData: function() {
if (userData == '') {
userData = userData1;
}
return userData;
},
};
最初のチェック - はconsole.log($ scope.userData)。もしあなたがマネージャーとしての役割を見ることができれば、第2コンソールはそれを表示します。その変数名も確認してください。 –
JSONオブジェクトを取得するロケット科学はありません。オブジェクト全体を確実に見ることができれば、そのキーペアも見ることができます。私はまだそれがfirebaseとfirebaseデータベースをタグ付けした理由を理解できませんでした。 –
@Sa E console.log($ scope.userData)は、問題の細かいjsonデータを返します。 – Janbango