2016-12-13 1 views
-1

Je crée une application utilisant des éléments polymères et Polymerfire et je ne peux pas trouver un moyen efficace de partager l'utilisateur et des références auth à travers l'application.moyen efficace de partager utilisateur et référence auth à travers l'application

Ma solution de recevoir référence auth actuelle est la suivante:

var auth = document.getElementById('appID').app.auth() 

Cette approche fonctionne mais j'ai un pressentiment qu'il devrait y avoir une meilleure façon. Le deuxième problème est, que je ne suis pas sûr comment obtenir la référence de l'utilisateur dans les sous-vues, obtenait la référence par le partage de propriété serait super lourd (et j'ai eu des problèmes en utilisant ce approach).

Je pensais que l'utilisation de méta-tag fer pourrait résoudre le problème, mais cela voudrait dire que sur tous les connexions et déconnexions je dois régler la valeur « manuellement ». Alors, y a-t-il un moyen plus direct de partager la référence?

Si j'accéder à la référence firebase-auth directement:

document.getElementById('authID').user 

Ensuite, il y a un problème quand il est accessible en fonction de l'élément prêt appeler est toujours nulle. Si elle est appelée plus tard, alors cela fonctionne bien, mais j'ai besoin de vérifier si l'utilisateur est connecté dans un appel prêt (et rediriger vers la page de connexion). De plus, cette approche ne fonctionne pas du tout si le paramètre Polymer global est défini sur: dom: 'shadow' (La base de données firebase-auth ne se trouve pas dans index.html mais plus bas et avec ce paramètre, je suis en mesure d'accéder seulement les éléments index.html.) et ce paramètre est censé être défini par défaut dans le futur et je veux que la solution soit à l'épreuve du futur.

Je serai reconnaissant pour toutes les réponses, Jan

Répondre

0

Je résolu la question. Apparemment, il est possible d'initialiser l'élément firebase-auth où vous voulez et l'élément conserve l'état de l'application tant que le nom de l'application est fourni.

<firebase-auth id="auth" app-name=name-of-the-app"></firebase-auth> 

que juste utiliser la référence de l'élément:

this.$.auth 
0

L'élément feu polymère créé par l'équipe de polymère résoudra tous vos problèmes.

Il est divisé en les éléments suivants: firebase-auth firebase-app firebase-documents firebase-requête firebase messagerie

Video Tutorial Authentication with Firebase -- Polycasts #57

Official Documentation

+0

J'utilise déjà les éléments polymerfire. Mon problème était que je ne savais pas comment y accéder globalement. J'ai résolu le problème par plusieurs utilisations de l'élément firebase-auth. –