2016-08-10 28 views
0

我在我的離子項目中有一個控制器,用於檢查登錄用戶並顯示有關該用戶的數據。在Firebase中找不到數據

但是,我嘗試顯示鏈接到數據庫中當前用戶的數據。我試過了代碼,但它並沒有顯示它:

.controller('AccountCtrl', function($scope, $state, $cordovaOauth) { 
    $scope.$on('$ionicView.enter', function() { 
    //Get logged in user credentials. 
    var user = firebase.auth().currentUser; 
    var name, email, photoUrl, provider, description; 

    console.log("User: " + JSON.stringify(user)); 
    if (user != null) { 
     name = user.displayName; 
     email = user.email; 
     photoUrl = user.photoURL; 
     provider = user.provider; 
     uid = user.uid; 
    } 

    //Set Profile Image. 
    $scope.profileImage = photoUrl; 
    //Set Profile Name. 
    $scope.profileName = name; 
    //Set Profile email. 
    $scope.profileEmail = email; 
    //Set provider. 
    $scope.provider = provider; 

     var userId = firebase.auth().currentUser; 
     var accountRef = firebase.database().ref('accounts/' + userId); 
     accountRef.on('value', function(account) { 
     $scope.description = account.val().displayDescription; 
     $scope.$apply(); 
    }); 
    }) ; 
    }); 

但是當我嘗試它不顯示任何{{說明}}

其實我努力帳戶的網上找了「 displayDescription」在我的數據庫鏈接到當前用戶,例如用戶-KOkwpzslw9NyUrTtvA7

{ 
    "accounts" : { 
    "-KOjv0LDdoWrc3uApvPi" : { 
     "dateCreated" : "Tue Aug 09 2016 11:29:18 GMT-0400 (EDT)", 
     "email" : "[email protected]", 
     "provider" : "Facebook", 
     "userId" : "FMXlUQZth5aehQLT2TKZZJZdJBh2" 
    }, 
    "-KOkwpzslw9NyUrTtvA7" : { 
     "dateCreated" : "Tue Aug 09 2016 16:16:52 GMT-0400 (EDT)", 
     "displayDescription" : "no description", 
     "email" : "[email protected]", 
     "provider" : "Facebook", 
     "userId" : "F9Z7YhSlmAQqOH5FVjBSV2CkYZG3" 
    } 
    } 
} 
+0

我認爲accountRef.on函數不是摘要循環的一部分。也許你可以試試$ scope.apply或者使用AngularFire。 – davibq

+0

一切正常,如果我只是把var userId ='-KOkwpzslw9NyUrTtvA7';我只是試着擁有它,所以我讓當前用戶自動選擇,而不是在你看到的代碼中寫入:) – FrenchyNYC

回答

1

嗨哥數據從該格式賬戶/用戶名/那麼你的數據描述,你不能指定這類。只是簡單地從該firebase.auth()函數抓取數據並將其保存到localstroge,然後您可以像你想要的方式使用它