2016-07-09 2 views
0

Die vorherige Version von Firebase (vor google-fication) hatte eine API Firebase#getAuth(), die nicht null zurückgeben würde, wenn ein aktuell angemeldeter Benutzer uns erlaubte, die Authentifizierung kurzzuschließen. Dies wurde in den Dokumenten dargelegt und die Kunden wurden ermutigt, es für die Leistung zu verwenden.Wird FirebaseAuth # signInWithCredential intern zwischengespeichert (für einen bestimmten Zeitraum) oder führt es eine Netzwerkauslösung durch und reauthetnicates bei jedem Aufruf?

Ist die neue FirebaseAuth#signInWithCredential API soll keine vollständige erneute Authentifizierung durchführen, wenn der Benutzer vor kurzem authentifiziert hat, oder Kunden der Bibliothek müssen den Überblick über die sich behalten und nur berufen, wenn nötig? Ich konnte keine Details in der offiziellen oder in der guides finden.

Grundsätzlich, was ist der Vertrag der Methode? Ist es für die Verwendung vorgesehen, wo ich es mehrmals aufrufen kann und es nach einer ersten vollständigen Authentifizierung (bis zu einer gewissen Ablaufdauer) sofort den erfolgreichen authentifizierten Zustand zurückgibt, oder führt es jedes Mal eine vollständige netzwerkbasierte Authentifizierung durch?

+1

Ich denke, Sie beschreiben ein [XY-Problem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Gib uns dein wirkliches Problem. – adolfosrs

+0

Sie hatten Recht, dass meine Frage war: "Was ist das Äquivalent zu der alten Firebase # getAuth(), so kann ich unnötige Authentifizierung Reisen vermeiden" obwohl ich noch wissen wollte, ob signInWithCredential Ergebnis für einige Zeit intern zwischengespeichert wird . Frank antwortete nicht ganz auf Letzteres, er sagte im Grunde, was in den Unterlagen war, was die Frage offen lässt, aber der Rest seiner Antwort hilft mir. Also XY vielleicht, aber mehr wie diese könnte in zwei separate Fragen aufgeteilt werden – Creos

Antwort

1

Wenn Sie wissen möchten, ob ein Benutzer angemeldet ist, rufen Sie FirebaseAuth.getCurrentUser(). Es entspricht dem Firebase.getAuth() im 2.x SDK.

Der Aufruf FirebaseAuth.signInWithCredential() versucht, sich mit den von Ihnen angegebenen Anmeldeinformationen anzumelden.

Wenn Sie wissen möchten, wann ein Benutzer an-/abgemeldet wird oder sich etwas an seinem Status ändert, verwenden Sie FirebaseAuth.addAuthStateListener().

+0

Danke, dies beantwortet das versteckte XY-Problem in meiner Frage, so habe ich es als akzeptiert und upvoted markiert, aber Ihre Antwort richtet sich immer noch nicht wirklich an meine explizite Frage, Sie haben gerade geschrieben, was bereits in den Dokumenten ist. Ich war mehr daran interessiert, ob die API internen Ablauf hat oder nicht, oder auch wenn dieses Verhalten vom Design nicht spezifiziert ist – Creos