Eyl.26

AngularJS ve Firebase – Ders 3: Kullanıcı Silme (deleteUser)

Bu makalede, AngularFire ile Firebase projemizde oluşturduğumuz kullanıcı hesaplarını nasıl sileceğimizi göreceğiz. Aslında bir admin gibi silmek gibi düşünmeyelim de, kullanıcının kendi hesabını silmesi gibi düşünelim. Bunun için kullanıcıdan almamız gereken bir bilgi yok. Sadecec o an giriş yapmış olan kullanıcıyı silmemiz gerektiği ile ilgili bir komut göndereceğiz.

Daha önceki makalelerimizde yaptığımız gibi bir form üzerinden gidelim. Bu formda hem Giriş butonu, hem de Sil butonu olsun. Sil butonunu AngularJs ile show/hide yapacağız.

<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
	<meta charset="utf-8">
	<meta http-equiv="content-type" content="text/plain; charset=UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="chrome=1">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title ></title>

	<link rel="stylesheet" href="bootstrap.min.css" >
<script charset="utf-8" src="jquery.min.js"></script>
	<script charset="utf-8" src="bootstrap.min.js"></script>

	<script charset="utf-8" src="angular.min.js"></script>
	<script charset="utf-8"src="app.js"></script>

<!-- Firebase -->
<script src="https://www.gstatic.com/firebasejs/3.6.6/firebase.js"></script>

<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/2.3.0/angularfire.min.js"></script>
<script>
  // Initialize Firebase
  var config = {
    apiKey: "AIzaSyDhgHleyj6d5Pjzn3heUi-bVMK6jN5KVJ8",
    authDomain: "ugurgelisken-69252.firebaseapp.com",
    databaseURL: "https://ugurgelisken-69252.firebaseio.com",
    projectId: "ugurgelisken-69252",
    storageBucket: "ugurgelisken-69252.appspot.com",
    messagingSenderId: "439860870061"
  };
  firebase.initializeApp(config);
</script>
	<style>
		body{
			margin:100px;
		}
	</style>
</head>
<body ng-controller="app_CTRL">
	 <div >

        <form ng-show="loginState==false">
          <div class="form-group">
            <label >Kullanıcı Email</label>
            <input type="text" ng-model="kullaniciAdi" class="form-control" placeholder="kullanıcı adı">
          </div>
          <div class="form-group">
            <label >Parola</label>
            <input type="password" ng-model="parola" class="form-control" placeholder="parola">
          </div>
          <table class="nav" align="center">
            <tr>
                <td>
                    <button type="submit" class="btn btn-primary" ng-click="giris()">Giriş</button>
                </td>
            </tr>       
          </table>
        </form>
        <div ng-show="loginState==true">
            <button class="btn btn-danger" ng-click="kullaniciSil()">Sil</button>
        </div>

    </div>  
</body>
</html>

app.js

var app = angular.module("app", ["firebase"]);

app.factory("Auth", ["$firebaseAuth",
  function($firebaseAuth) {
    return $firebaseAuth();
  }
]);

app.controller("app_CTRL", ["$scope", "Auth", function($scope, Auth) {

	$scope.loginState = false;

	$scope.giris = function (){
		 Auth.$signInWithEmailAndPassword($scope.kullaniciAdi, $scope.parola).then(function(firebaseUser) {
                         console.log("girildi");
                         $scope.loginState = true;
                 }).catch(function(error) {
                         console.log("Hata : " + error);
                 });
	}

	$scope.kullaniciSil = function (){
		Auth.$deleteUser().then(function(){
                     console.log("Kullanıcı silindi");
                }).catch(function(error) {
                     console.log("Hata : " + error);
                });
	}

}
]);

Burada yaptığımız işlemlerde farklı olarak loginState diye bir değer tuttuk. Bunu VIEW’de yani html sayfasında ng-show direktifinde kullanarak ilk olarak login formunun görünmesini, login işleminden sonra da login formunun gizlenip sil butonunun görünmesini sağladık.

İçeriği paylaş:
  • facebook
  • twitter