2017-10-22 3 views
3

Ich habe eine Android-App mit Firebase-Backed-Speicher. Zur Authentifizierung verwende ich eine Google-Anmeldung, gefolgt von Firebases signInWithCredential().So beschleunigen Sie den Firebase-Authentifizierungsprozess

Dies ist manchmal ziemlich schnell, manchmal auch sehr langsam (2 Sekunden für die Google-Anmeldung, 6 Sekunden für Firebase, manchmal länger). Dies ist unter UX-Gesichtspunkten nicht akzeptabel, insbesondere, da dies jedes Mal geschieht, wenn der Benutzer die App startet.

Gibt es etwas, was ich tun kann, um die Dinge zu beschleunigen?

Auf den Punkt gebracht, mit allen async Handhabung entfernt:

result = Auth.GoogleSignInApi.silentSignIn(googleApiClient).get(); 
// --- That can take over two seconds --- 

GoogleSignInAccount acct = result.getSignInAccount(); 
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null); 
authTask = auth.signInWithCredential(credential); 
// --- This can take over six seconds --- 

Antwort

4

Authentifizierungszeit hängt vollständig von Netzwerkgeschwindigkeit und Firebase Backend Reaktionszeit.

Auch keine Notwendigkeit, Benutzer jedes Mal neu anzumelden, wenn die App startet.

FirebaseAuth.getInstance().getCurrentUser() 

nicht null sein, wenn Sie explizit den Benutzer abzumelden mit

FirebaseAuth.getInstance().signOut() 

Was ich meine, das ist. Sie sollten den Benutzer nicht jedes Mal neu anmelden, wenn der Benutzer die App öffnet/startet und stattdessen die gespeicherte Auth-Instanz verwendet.

Falls Sie die Auth-Instanz für neuere Änderungen aktualisieren möchten, sagen wir, dass der Benutzer angemeldet war und Sie das Konto aus bestimmten Gründen blockieren. In diesem Fall ist der Benutzer weiterhin angemeldet und nutzt Ihre Dienste. Um dies zu vermeiden, können Sie das Profil neu laden, was schneller ist als die erneute Anmeldung.

+1

Wow, die Lösung ist so offensichtlich, dass ich mich recht dumm fühle! Ich dachte nie für eine Sekunde, dass der FirebaseAuth seinen Zustand nach einem Neustart beibehalten würde. Im Nachhinein ist dies sinnvoll, da Firebase Dateien im Datenverzeichnis für jede App-Instanz zurücklässt. Herzlichen Glückwunsch zu Ihrer ersten angenommenen Antwort :) – EboMike

Verwandte Themen