从Firebase退出使用电子邮件和密码撤回登录

时间:2019-01-12 16:37:39

标签: android firebase firebase-authentication

情况如下:

该活动始于应用程序的启动(我们称其为启动活动,因为它用于进行某些检查和读取/写入某些设置)是由框架进行的,最后一个框架具有firebase {{ 1}},其中float包含用于启动新活动的代码(假设主要活动为 )。

所谓的)主要活动菜单的一个选项是Firebase signInWithEmailAndPassword,当我点击它时,当前用户会退出,但是addOnCompleteListener被编码为先前活动的最后一个片段)!

是因为我将登录和注销分为两个不同的活动吗?

在此先感谢任何人。

这是代码架构:

signOut

p.s。 -我注意到是因为signInWithEmailAndPassword踢出了Firebase用户,并且再次调用FirebaseAuth.getInstance().signInWithEmailAndPassword(email, password) .addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // read some data from realtime database database .getReference(path) .addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { get snapshot data ... // Store them into shared preferences mSettings .edit() .putStringSet("STRING_SET_KEY", dataSet) .apply(); // Update some Realtime database data database .getReference(path) .updateChildren(newData) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { // Start new activity Intent intent = new Intent(getActivity(), MainActivity.class); startActivity(intent); } }); }); }); }); } }); }); 时出现错误,因为无法读取实时数据库

1 个答案:

答案 0 :(得分:0)

您可以检查用户是否仍在登录。

根据此链接:https://firebase.google.com/docs/auth/android/manage-users

这段代码放在onCreateView ...

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if (user != null) {
        // User is signed in
          // Start new activity 
         Intent intent = new Intent(getActivity(), MainActivity.class);
         startActivity(intent);
    } else {
        // No user is signed in
    }