Firebase 3.0에서 사용자를 로그아웃하려면 어떻게 해야 합니까?
설명서에 따르면 사용자가 이 방법으로 로그아웃하도록 강제합니다.signOut()
.
이것이 제가 시도한 것입니다.
var rootRef = firebase.database().ref();
var loggedInUser = firebase.auth();
1. firebase.signOut();
2. loggedInUser.signOut();
3. rootRef.signOut();
4. signOut();
5. firebase.auth.signOut();
알겠습니다... is not a function
위의 다섯 가지 중 한 가지에 대해.새로운 파이어베이스에 대한 제 언급에 문제가 없다는 것을 알고 있습니다.firebase.database().ref();
그리고.firebase.auth();
오류를 발생시키지 않습니다.콘솔에서 앱을 마이그레이션하기도 했습니다.
JavaScript에서 다음을 사용하여 사용자를 로그아웃할 수 있습니다.
firebase.auth().signOut().then(function() {
console.log('Signed Out');
}, function(error) {
console.error('Sign Out Error', error);
});
firebase.auth().signOut()
단순히 그것은 나에게 효과가 있습니다!
사용자를 로그아웃하는 몇 가지 방법이 있습니다.
파이어베이스UI: 참조
종속성 추가:
dependencies {
implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
}
그러면:
public void onClick(View v) {
if (v.getId() == R.id.sign_out) {
AuthUI.getInstance()
.signOut(this)
.addOnCompleteListener(new OnCompleteListener<Void>() {
public void onComplete(@NonNull Task<Void> task) {
// user is now signed out
startActivity(new Intent(MyActivity.this, SignInActivity.class));
finish();
}
});
}
}
코틀린: 참조
Android 기본 인증 종속성 사용(예: com.google.firebase:firebase-auth:16.0.1
firebase.auth().signOut().then(function() {
// Sign-out successful.
}).catch(function(error) {
// An error happened.
});
Java를 사용한 기본값:
Android 기본 인증 종속성 사용(예: com.google.firebase:firebase-auth:16.0.1
FirebaseUser user = mAuth.getCurrentUser();
if (user != null){
mAuth.signOut();
Toast.makeText(this, user.getEmail()+ " Sign out!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "You aren't login Yet!", Toast.LENGTH_SHORT).show();
}
@Frank van Puffelen의 답변을 확장하여, 이 코드는 매력적으로 작동하지만 내부에서 거부 처리를 약속합니다.then()
두 번째 매개 변수로 기능하는 것은 잘못된 관행입니다.
차라리 a를 추가합니다..catch(e)
블록으로 막다
왜냐하면, 만약에 오류가 발생한다면,signout()
그러면 기능이 처리되지만 오류가 발생할 경우.then()
차단하면 처리되지 않습니다.
더 나은 코드는,
firebase.auth().signOut()
.then(() => {
console.log('Signed Out');
})
.catch(e=>{
console.error('Sign Out Error', e);
});
최신 화력 기지를 위해 이것을 시도해 볼 수 있습니다.제 각진 방화벽 기반 인증에 사용할 수 있습니다.
async logout() {
await signOut(this.auth);
localStorage.removeItem("user");
}
내가 제대로 이해했는지는 모르겠지만 로그인한 모든 사용자를 로그아웃하려면 다음과 같이 하십시오.코드가 클라이언트에서 실행 중이고 인증 상태가 이를 실행 중인 클라이언트를 가리키기 때문에 그럴 수 없습니다.
파이어베이스 인증 서비스에 연결된 모든 클라이언트에 액세스할 수는 없습니다. 이는 서버 측에서 코드를 실행하는 것을 의미하기 때문입니다.
그러나 세션 기간을 지정하는 옵션이 있는데, 이는 인증 섹션의 기억 매개 변수입니다.
언급URL : https://stackoverflow.com/questions/37376708/how-do-i-sign-out-users-in-firebase-3-0
'programing' 카테고리의 다른 글
cudaMalloc()가 포인터 투 포인터를 사용하는 이유는 무엇입니까? (0) | 2023.06.10 |
---|---|
파이썬에서 numpy 행렬의 길이(또는 치수, 크기)를 어떻게 찾습니까? (0) | 2023.06.10 |
ASP.NET MVC에서 페이지화를 수행하려면 어떻게 해야 합니까? (0) | 2023.06.10 |
윈도우즈 서비스의 "실행 파일 경로" 수정 (0) | 2023.06.10 |
UI WebView의 현재 URL 가져오기 (0) | 2023.06.05 |