Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问firebase数据库中的用户UID_Javascript_Angularjs_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Javascript 如何访问firebase数据库中的用户UID

Javascript 如何访问firebase数据库中的用户UID,javascript,angularjs,firebase,firebase-realtime-database,firebase-authentication,Javascript,Angularjs,Firebase,Firebase Realtime Database,Firebase Authentication,我正在开发一个基于当地联赛的梦幻足球网络应用程序。到目前为止,当使用firebase auth创建用户时,会在my firebase中使用用户uid创建相应的节点,如下所示: $scope.signUp = function (){ var username = $scope.user.email; var password = $scope.user.password; var teamname = $scope.user.teamname; var fullnam

我正在开发一个基于当地联赛的梦幻足球网络应用程序。到目前为止,当使用firebase auth创建用户时,会在my firebase中使用用户uid创建相应的节点,如下所示:

  $scope.signUp = function (){
   var username = $scope.user.email;
   var password = $scope.user.password;
   var teamname = $scope.user.teamname;
   var fullname = $scope.user.fullname;

   var ref = firebase.database().ref().child('users');

   if(username && password){
     var auth = $firebaseAuth();
         auth.$createUserWithEmailAndPassword(username, 
       password).then(function(user){
             console.log("User Successfully Created");
            let usersRef = firebase.database().ref("users");
             //child is created under users node with a user's user id as 
        child name
            usersRef.child(user.uid).set({
                email: user.email,
                userName: username,
                teamname: teamname,
                fullname: fullname,
                total: 0,
                week:0
              });

             $location.path('/home');
         }).catch(function(error){
            $scope.errMsg = true;
            $scope.errorMessage = error.message;
         });
          }
          };               
$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};
那部分很好用。在数据库中,JSON树如下所示:

users:{
         user UID: {
                    email:
                    teamname:
                    fullname:
                    week:
                  }
       }
$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};
我的所有观点都使用一项服务:

.service('CommonProp',['$location','$firebaseAuth', function($location,$firebaseAuth){
    var user = "";
    var auth = $firebaseAuth();

  return {
      getUser:function(){
          if(user == ""){
         user = localStorage.getItem("userEmail"); 
          }
          return user;
      },
      setUser: function(value){
        localStorage.setItem("userEmail", value);  
         user = value; 
      },
      logoutUser: function(){
         auth.$signOut();
         console.log("Logged Out Successfully");
         user = "";
         localStorage.removeItem("userEmail");
         $location.path('/home');
      }
      };
      }]);
$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};
问题

$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};
我的问题是,当我转到“选择播放器”视图时,我不知道如何访问用户UID,以便我可以设置每个用户每周的选择。这就是我试图做的:`

$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};

是否有一种方法可以访问每个用户各自用户uid下各自的“周”子节点?

为此,您需要监视
auth.$onAuthStateChanged
。请参阅@FrankvanPuffelen using auth.$onAuthStateChanged我的代码“ref2”中的firebase数据库如何准确获取相应用户的uid?很抱歉,github链接没有明确说明这一点。您可以从
firebaseUser.uid
获得它。
$scope.saveTeam = function(user){
   $scope.history = [];
   var uid = user.uid;
   var ref2 = firebase.database().ref("users/" + auth.uid + "/week"); 
   ref2.set($scope.history);
};