java - ऐप में एक बार लॉगइन करें-FirebaseAuth




android firebase-authentication (2)

आप साझा वरीयता में उपयोगकर्ता लॉगिन सत्र बचा सकते हैं

ऐसा तब करें जब आपके लॉगिन में लॉगिन सक्सेस हो

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", Activity.MODE_PRIVATE);
Editor editor = pref.edit();
editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.commit();

और जब आपके ऐप स्टार्ट हो जाएं (जैसे स्प्लैश या लॉगइन पेज) तो इसका इस्तेमाल करें

 SharedPreferences sp=this.getSharedPreferences("MyPref", Context.MODE_PRIVATE);
  boolean b = sp.getBoolean("key_name", false);
if(b==true){
//User Already Logged in skip login page and continue to next process
}else{
//User is Not logged in, show login Form
}

यह आपके लिए काम करेगा।

मैं एक ऐसे ऐप पर काम कर रहा हूं जो फोन नंबर के माध्यम से उपयोगकर्ताओं में साइन इन करने के लिए फायरबेस प्रमाणीकरण का उपयोग करता है। मैं एक ऐसी कार्यक्षमता जोड़ना चाहता हूं कि उपयोगकर्ता के लिए केवल एक बार लॉगिन हो, अर्थात यदि उपयोगकर्ता ऐप को मारता है और इसे फिर से शुरू करता है, तो उसे लॉग इन किया जाना चाहिए। इसके अलावा, मैं एक लॉगआउट सुविधा नहीं जोड़ना चाहता। । इसके लिए क्या किया जा सकता है?


इसे प्राप्त करने का सबसे सरल तरीका एक श्रोता का उपयोग करना है। मान लेते हैं कि आपके पास दो गतिविधियाँ हैं, LoginActivity और MainActivityLoginActivity में बनाए जा सकने वाले श्रोता को इस तरह दिखना चाहिए:

FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser != null) {
            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
            startActivity(intent);
            finish();
        }
    }
};

इसका मूल रूप से अर्थ यह है कि यदि उपयोगकर्ता लॉग इन है, तो LoginActivity छोड़ें और LoginActivity पर MainActivity

FirebaseAuth ऑब्जेक्ट को FirebaseAuth :

FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();

और अपने onStart() तरीके में बदलाव के लिए सुनना शुरू करें:

@Override
protected void onStart() {
    super.onStart();
    firebaseAuth.addAuthStateListener(authStateListener);
}

MainActivity , आपको एक ही काम करना चाहिए:

FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
        if (firebaseUser == null) {
            Intent intent = new Intent(MainActivity.this, LoginActivity.class);
            startActivity(intent);
        }
    }
};

जिसका मूल रूप से अर्थ यह है कि यदि उपयोगकर्ता लॉग इन नहीं है, तो MainActivity छोड़ें और MainActivity पर LoginActivity । इस गतिविधि में आपको वही कार्य करना चाहिए जैसे कि LoginActivity , आपको onStart() में बदलावों के लिए सुनना शुरू करना चाहिए।

दोनों गतिविधियों में, उस पल में श्रोता को दूर करना न भूलें जिसमें अब और ज़रूरत नहीं है। तो अपने onStop() विधि में कोड की निम्न पंक्ति जोड़ें:

@Override
protected void onStop() {
    super.onStop();
    firebaseAuth.removeAuthStateListener(authStateListener);
}




firebase-authentication