簡體   English   中英

即使用戶在 android studio 中關閉應用程序,如何保持登錄狀態

[英]How to remain signed in even when the user closes the app in android studio

一開始我在注銷時遇到了問題(鏈接: 如何在用戶想在 android studio 中注銷時)。 我刪除了即使在應用程序關閉后也有助於保持用戶登錄的部分,現在注銷工作正常。但現在我的問題是我應該如何保持用戶登錄? 這是我的登錄頁面

public class Login_Page extends AppCompatActivity {
    ActivityLoginPageBinding binding;
    ProgressDialog progressdialog;
    FirebaseAuth auth;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityLoginPageBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());
        button = findViewById(R.id.Googlelogin);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Login_Page.this, SignUp.class);
                startActivity(intent);
            } //taking the user to signup page
        });
        auth = FirebaseAuth.getInstance();

            progressdialog = new ProgressDialog(Login_Page.this);
            progressdialog.setTitle("Logging in");
            progressdialog.setMessage("Please wait");
            binding.Login.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    progressdialog.show();
                    auth.signInWithEmailAndPassword(binding.Email.getText().toString(), binding.Password.getText().toString())
                            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                                @Override
                                public void onComplete(@NonNull Task<AuthResult> task) {
                                    progressdialog.dismiss();
                                    if (task.isSuccessful()) {
                                        Toast.makeText(Login_Page.this, "Success", Toast.LENGTH_SHORT).show();
                                        String uid = auth.getInstance().getCurrentUser().getUid();
                                        DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
                                        DatabaseReference uidRef = rootRef.child("Users").child("Driver").child(uid);
                                        ValueEventListener valueEventListener = new ValueEventListener() {
                                            @Override
                                            public void onDataChange(@NonNull DataSnapshot snapshot) {
                                                if (snapshot.exists()) {
                                                    Toast.makeText(Login_Page.this, "LoginDriver", Toast.LENGTH_SHORT);
                                                    Intent intent = new Intent(Login_Page.this, HomePage.class);
                                                    startActivity(intent);
                                                } else {
                                                    startActivity(new Intent(Login_Page.this, Custhomepage.class));
                                                }
                                            }

                                            @Override
                                            public void onCancelled(@NonNull DatabaseError error) {

                                            }
                                        };
                                        uidRef.addListenerForSingleValueEvent(valueEventListener);
                                    } else {
                                        Toast.makeText(Login_Page.this, task.getException().getMessage(), Toast.LENGTH_SHORT);
                                    }
                                }
                            });

                }
            });


        }
    }

我猜你不是在檢查用戶是否登錄。 在活動的 onCreate 中,調用以下方法checkFirebaseUser()

private void checkFirebaseUser () {
   FirebaseUser firebaseUser = mAuth.getCurrentUser ();
   if (firebaseUser != null) {
      //User is logged in already. You can proceed with your next screen
   } else {
      //User not logged in. So show email and password edit text for user to enter credentials
  }
}

希望以上代碼片段對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM