Javascript 如何在Firebase 3.0中注销用户?
根据,我强制用户使用方法Javascript 如何在Firebase 3.0中注销用户?,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,根据,我强制用户使用方法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(); 我得到。。。不是上述五项中每一项的功能。我
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();
我得到
。。。不是上述五项中每一项的功能
。我知道我对新Firebase的引用没有问题,因为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部分中的记住参数
firebase.auth().signOut()
这对我很有效 有几种方法可以注销用户:
1。FirebaseUI:
添加从属关系:
然后:
3。java默认值:
使用Android默认身份验证依赖项,例如:com.google.firebase:firebase auth:16.0.1
firebase.auth().signOut().then(function() {
// Sign-out successful.
}).catch(function(error) {
// An error happened.
});
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()
函数中作为第二个参数进行拒绝处理是一种不好的做法
而是添加一个.catch(e)
块
因为,如果错误发生在signout()
函数中,那么它将被处理,但如果错误发生在中,那么()
块中,那么它将不会被处理
更好的代码应该是
firebase.auth().signOut()
.then(() => {
console.log('Signed Out');
})
.catch(e=>{
console.error('Sign Out Error', e);
});
不,只有当前在clientOkay中登录的用户不太明白问题的第二部分。我们如何在Java中执行此操作?我正在执行此操作,并在控制台中记录“注销”,但我的firebase.auth().onAuthStateChanged()会立即返回,而用户仍在登录:(使用JS SDK 3.5。2@frank-van puffelen什么情况下signOut()可能会失败?我在调用signOut()后正在刷新页面。添加signOut()。然后(()=>{refresh}解决了Kotlin代码看起来与JavaScript非常相似的问题。
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();
}
firebase.auth().signOut()
.then(() => {
console.log('Signed Out');
})
.catch(e=>{
console.error('Sign Out Error', e);
});