2

Je crée une application Andiod qui a un WebView qui accède à mon site Web hébergé à l'aide de Firebase Hosting. Si je me connecte au site Web à l'aide d'informations d'identification par e-mail/mot de passe, puis actualise ou navigue vers une autre page, Firebase perd mes informations de connexion.L'authentification utilisateur n'est pas conservée sur WebView

J'ai essayé de forcer Firebase à garder mes lettres de créance en utilisant firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL) mais il jette cette erreur dans la console WebView:

Uncaught Error: The current environment does not support the specified persistence type.

Comme une note de côté, j'ai essayé vous connecter sur d'autres services, tels que YouTube et Google pour voir s'il s'agissait d'un problème de cache du navigateur, mais la session a été conservée normalement, même après avoir actualisé la page, navigué ou rouvert l'application Android.

J'ai également testé l'application Android en utilisant l'émulateur (fonctionnant sous Android 8.0) et un téléphone (Android 6.0).

Est-ce que quelqu'un sait ce qui se passe ici?

+0

Utilisez-vous 'firebase.auth(). OnAuthStateChanged' pour obtenir l'état Auth? – bojeil

+0

@bojeil Oui, je suis – wm1sr

+0

Avez-vous désactivé le stockage Web dans le WebView? localStorage est-il activé? – bojeil

Répondre

4

Vous devez activer le stockage DOM dans votre vue Web car Firebase Auth dépend du stockage Web (localStorage/indexedDB) pour stocker l'état Auth.

webview.getSettings().setDomStorageEnabled(true);

+1

Merci! J'aurais aimé pouvoir l'emporter deux fois. – Rbar