Javascript angularjs firebase用户身份验证服务未与视图通信

Javascript angularjs firebase用户身份验证服务未与视图通信,javascript,angularjs,firebase-authentication,angularjs-service,Javascript,Angularjs,Firebase Authentication,Angularjs Service,我有一个将参数笔名传递到环境的服务。我在我的视图中调用了这个笔名,但它根本没有出现。 如何解决此问题以在视图中显示值? 我的用户服务: app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) { var pseudonym =""; var userId = firebase.auth().currentUser.uid; return { pse

我有一个将参数
笔名
传递到环境的服务。我在我的视图中调用了这个
笔名
,但它根本没有出现。
如何解决此问题以在视图中显示值?

我的用户服务

app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
    var pseudonym ="";
    var userId = firebase.auth().currentUser.uid;

    return {
        pseudonym: function() {
            DatabaseRef.ref('/users/' + userId).once('value')
                .then(function (snapshot) {
                    pseudonym = snapshot.val().pseudonym;
                    console.log("pseudony: ", pseudonym);
                    return pseudonym;
                });

        }
    }
}]);
在我的控制台中,我看到了
假名的值。但在我看来,不是使用{{笔名}}的html
下面是视图控制器的示例:

app.controller('ExampleCtrl', ["MyUser",
    function (MyUser) {
     $scope.pseudonym = MyUser.pseudonym();
}]);

返回由
创建的承诺。然后
方法:

app.service('MyUser', ['DatabaseRef', 'firebase', function(DatabaseRef, firebase) {
    //var pseudonym ="";
    var userId = firebase.auth().currentUser.uid;

    return {
        getUserName: function() {
            //return promise
            return (
                DatabaseRef.ref('/users/' + userId).once('value')
                    .then(function onSuccess(snapshot) {
                        let pseudonym = snapshot.val().pseudonym;
                        console.log("pseudony: ", pseudonym);
                        return pseudonym;
                })
            );
        }
    }
}]);
然后从该承诺中提取价值:

var app = angular.module('app', []);
app.controller('loginController',['$scope', 'MyUser',function($scope, MyUser)
{
    let promise = MyUser.getUserName();
    //Extract data from promise
    promise.then( function onSuccess(pseudonym) {
        $scope.pseudonym  = pseudonym;
        console.log($scope.pseudonym);
    });
}]);

对象的
.then
方法总是返回一个从作为该
方法的参数提供的处理程序函数返回的值(或承诺)派生的承诺。then
方法。

放置一个console.log并检查是否可以看到variable@Sajeetharan我在我的视图控制器中放了一个控制台日志,它给了我未定义的!但它在服务内部的控制台日志中提供了正确的值pseudonym@Sajeetharan仅服务中的函数名
newpseuronym:function(){…
例如?在视图控制器
MyUser.newpseuronym();
?是的,没有弹出任何内容。