2016-05-10 7 views
0

Ich bin ein Anfänger in Android-Codierung. Und ich möchte eine Anmeldeseite für meine Anwendung erstellen. Verwenden Sie Firebase als meinen Back-End-Server. Die von Firebase bereitgestellten Authentifizierungsdienste können Benutzer erfolgreich erstellen. Aber wie wir wissen, muss der Benutzer die Anmeldedaten zum Zeitpunkt der Installation der Anwendung eingeben. Also, jemand schlägt mir vor, wie man diesen Teil in Android entwickelt, wo er Anmeldeinformationen bei der App-Installation nimmt und sie lokal speichert, so dass der Benutzer die Anmeldeinformationen nicht immer eingeben muss, wenn er die Anwendung startet. Vielen Dank im Voraus Jungs!Android Login und Speicherung mit Firebase

+0

Verwenden Sie 'SharedPreferences', um den Benutzeranmeldezustand zu verfolgen. folge -> http://www.tutorialspoint.com/android/android_shared_preferences.htm –

+0

https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat versuche diesen github code ..... –

+0

Probieren Sie dies .... https://github.com/firebase/firebase-login-demo-android –

Antwort

0

Es gibt mehrere Möglichkeiten, Ihre Benutzerinformationen lokal zu speichern. Aber ich denke, in Ihrem Fall SharedPreference wird beste Lösung sein.

Ich nehme an, Sie haben alle damit verbundenen Sachen mit FireBase initialisiert, dann müssen wir zuerst überprüfen, ob unser Benutzer vor oder nicht protokolliert wird. Um es zu überprüfen, werden wir SharedPreferences verwenden.

@Override 
public void onCreate() { 
    super.onCreate(); 
    Firebase.setAndroidContext(this); 
    // other setup code 
    SharedPreferences mPrefs = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE); 
    if (mPrefs.getBoolean("is_logged_before",false)) { 
     Intent i = new Intent(this, HomeActivity.class); 
     startActivity(i); 
    } else { 
     // continue to login part 
    } 
} 

Dann sollten Sie Ihre Benutzerinformationen zu SharedPreferences speichern, wenn Sie registriert/angemeldet in erfolgreich zu FireBase. Es sollte onSuccess Funktion bei FireBase sein, um das Ergebnis Ihrer Anmeldung zu hören. Speichern Sie daher die Benutzerinformationen und andere zugehörige Informationen hier lokal unter SharedPreferences.

@Override 
public void onSuccess(Map<String, Object> result) { 
    System.out.println("Successfully created user account with uid: " + result.get("uid")); 
    mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = mPrefs.edit(); 
    editor.putString("userId", result.get("uid")); 
    editor.putBoolean("is_logged_before",true); //this line will do trick 
    editor.commit(); 
} 
2

Firebase weiterhin besteht bereits die Sitzung (in SharedPreferences) Token, wenn sich der Benutzer in, so dass Sie nicht haben, dass selbst zu tun.

Stattdessen sollten Sie monitor whether the user is logged in. Aus dieser Dokumentation:

Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com"); 
ref.addAuthStateListener(new Firebase.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(AuthData authData) { 
     if (authData != null) { 
      // user is logged in 
     } else { 
      // user is not logged in 
     } 
    } 
});