2017-09-06 2 views
0

소셜 미디어 계정을 사용하여 firebase 인증을 사용하고 있습니다. 가입 후 로그 아웃 할 수 없습니다. 다음Firebase를 사용하여 로그 아웃

내 자바 스크립트 코드 :

<script src="https://www.gstatic.com/firebasejs/4.1.3/firebase.js"></script> 
<script> 
    // Initialize Firebase 
    var config = { 
    apiKey: "*******", 
    authDomain: "******", 
    databaseURL: "******", 
    projectId: "*******", 
    storageBucket: "******", 
    messagingSenderId: "*******" 
    }; 
    firebase.initializeApp(config); 

    firebase.auth().onAuthStateChanged(function(user) { 
     if (user) { 
     // User is signed in. 
     var displayName = user.displayName; 
     var email = user.email; 
     var photoURL = user.photoURL; 
     user.getToken().then(function(accessToken) { 

      console.debug('user', user); 
      document.getElementById('sign-in-status').textContent = 'Signed in'; 
      document.getElementById('name').textContent = JSON.stringify(displayName) 
      document.getElementById('email').textContent = JSON.stringify(email) 
      document.getElementById('account-details').textContent = JSON.stringify({ 
       displayName: displayName, 
       email: email, 
       photoURL: photoURL 
      }); 
     }); 

     } else { 
      console.log('not logged in'); 
     /*document.getElementById('sign-in-status').textContent = 'Signed out'; 
     document.getElementById('sign-in').textContent = 'Sign in'; 
     document.getElementById('account-details').textContent = 'null'; 
     */ 
     } 

    }); 

    // User is signed out. 
     firebase.auth().signOut().then(function() { 
     // Sign-out successful. 
     signOutSuccessUrl: 'https://url.html' 
     }).catch(function(error) { 
     // An error happened. 
     }); 

</script> 

그리고 HTML에서 나는하여 호출 오전 : <button class="btn btn-primary" onclick="signOut()"><i class="fa fa-sign-out">/i> Log out</button>

그러나 버튼 아무것도 클릭하지하는 일에.

심지어 함수에 signout 세그먼트를 넣으려고했지만 그다지 도움이되지 않습니다.

어떤 종류의 도움이라도 대단히 감사하겠습니다. 감사.

답변

1

클릭 이벤트 처리기가 signOut 메서드를 호출하면 어딘가에 정의해야합니다. like :

window.signOut = function signOut(_e) { 
    firebase.auth().signOut().then(function() { 
    // Sign-out successful. 
    }).catch(function(error) { 
    // An error happened. 
    }); 
} 
+0

코드를 삽입 한 다음 콘솔에 체크인했습니다. '로그인하지 않음'이 표시되고 있지만 URL에서 언급 한 페이지로 리디렉션되지 않습니다. 'window.signOut = function signOut (_e) { firebase.auth(). signOut(). then (function() { // 로그 아웃 성공 signOutURL : 'https : //url.html'; catch (function (error) { // 오류가 발생했습니다.) }); }' –

+1

성공적인 사인 아웃 후 리다이렉션을 원하면'signOut.then' 콜백에'window.location.replace ("https : //url.html")'을 추가 할 수 있습니다. – user2520818

+0

감사합니다. 또한 내 코드가 보이면 사용자의 이미지도 검색하려고합니다. 모든 예에서는 photoUrl이 사용 된 것을 보았습니다. 결과적으로 URL 만 표시됩니다. 사진을 실제로 볼 수있게하려면 어떻게해야합니까? –

관련 문제