Firebase angularjs创建新用户时会替换Firebase当前身份验证

Firebase angularjs创建新用户时会替换Firebase当前身份验证,angularjs,firebase,firebase-authentication,Angularjs,Firebase,Firebase Authentication,我正在开发AngularFirebase web应用程序,只要管理员登录,他就可以自己创建用户。 管理员登录时,将使用firebase.auth()对其进行身份验证 但是,当admin创建一个新用户时,当前的auth细节(admin)将被新创建的用户替换。我希望在不创建新会话的情况下创建用户 看看我的控制器: app.controller('UserAdd', ['$scope','$sessionStorage','$http','$firebaseAuth', '$firebas

我正在开发AngularFirebase web应用程序,只要管理员登录,他就可以自己创建用户。 管理员登录时,将使用firebase.auth()对其进行身份验证

但是,当admin创建一个新用户时,当前的auth细节(admin)将被新创建的用户替换。我希望在不创建新会话的情况下创建用户

看看我的控制器:

      app.controller('UserAdd', ['$scope','$sessionStorage','$http','$firebaseAuth', '$firebaseArray', '$location' ,'$firebaseObject', 'FBURL', function($scope,$sessionStorage,$http,$firebaseAuth,$firebaseArray, $location ,$firebaseObject, FBURL){ 
        var user = firebase.database().ref().child("users");
        $scope.user_auth_data = firebase.auth().currentUser;
        $sessionStorage.uID = $scope.user_auth_data.uid ;
        $scope.access_points=  [];
        $scope.teams = [];
        $scope.org_details = [];
        user.child($sessionStorage.uID).child("OrganizationId").on('value',function(org_id){
            $sessionStorage.org_id = org_id.val();
        })
        user.child($sessionStorage.uID).child("ImagePath").on('value',function(img){
          $scope.user_image = img.val();
        })

        //access points
        firebase.database().ref().child("organization").child($sessionStorage.org_id).child("access_points").on('value',function(access_points){
           angular.forEach(access_points.val(),function(ap,key){
                $scope.access_points.push({id:key,ssid:ap.SSID,bssid:ap.BSSID,display_name:ap.DisplayName,lat:ap.Latitude,lng:ap.Longitude});
           })


        });

        var obj = $firebaseArray(firebase.database().ref().child("organization").child($sessionStorage.org_id).child("access_points"));
        obj.$loaded(
          function(data) {

          },
          function(error) {
            console.error("Error:", error);
          }
        );

        firebase.database().ref().child("organization").child($sessionStorage.org_id).child("teams").on('value',function(teams){
           angular.forEach(teams.val(),function(team,key){
                $scope.teams.push({id:key,team_name:team.TeamName,team_leader:team.TeamLeader,channel_name:team.ChannelName});
           })
        });

        var obj = $firebaseArray(firebase.database().ref().child("organization").child($sessionStorage.org_id).child("teams"));
        obj.$loaded(
          function(data) {

          },
          function(error) {
            console.error("Error:", error);
          }
        );



        $scope.selectItem = function(){

            };

        //add user
        $scope.addUser = function() {


        firebase.auth().createUserWithEmailAndPassword($scope.Email, $scope.Password)
                .then(function(user) {
                  //adding single values in user node


                var ref = firebase.database().ref().child("users").child(user.uid);

                ref.set({
                    EmployeeId: $scope.emp_id, 
                    Contact: $scope.Contact,
                    DOB: $scope.date_of_birth,
                    Designation: $scope.Designation,
                    Email: $scope.Email,
                    FirstName: $scope.FirstName,
                    LastName: $scope.LastName,
                    OrganizationId: $sessionStorage.org_id,
                    Gender: $scope.selectedGender,
                    IsAdmin: false


                });



                  $scope.selectedAccess.forEach(function(access_values){   //adding nested access_points
                  var ref1 = firebase.database().ref().child("users").child(user.uid).child("AccessPoint").child(access_values.id);



                  ref1.set({
                    SSID: access_values.ssid,
                    BSSID: access_values.bssid,
                    DisplayName: access_values.display_name,
                    Latitude: access_values.lat,
                    Longitude: access_values.lng


                });

                });

                $scope.selectedTeam.forEach(function(team_values){    //adding nested team
                var ref2 = firebase.database().ref().child("users").child(user.uid).child("team").child(team_values.id);


                  ref2.set({
                    ChannelName: team_values.channel_name,
                    TeamName: team_values.team_name,
                    TeamLeader: team_values.team_leader


                });
                }); 
                $scope.teams.forEach(function(team_values){ 
                var ref3 = firebase.database().ref().child("organization").child($sessionStorage.org_id).child("channels").child(team_values.channel_name).child("info").child("users");

                    ref3.child(user.uid).set($scope.FirstName+" "+$scope.LastName);


                var ref4 = firebase.database().ref().child("organization").child($sessionStorage.org_id).child("user_team").child(team_values.team_name).child(user.uid);
                ref4.set($scope.FirstName+" "+$scope.LastName);



                });


                firebase.auth().sendPasswordResetEmail(user.email);

                 $location.path('/user_list');
                }).catch(function(error) {
                    console.log(error);
                });





            };


        }]);

要保持在同一个管理会话而不是新的管理会话中,需要做些什么?

无法保留当前已验证的用户信息。这是firebase create new user函数的用户流。可能与