2016-07-31 1 views
3

Ich bin ein Neuling mit Polymer und Firebase, ich übe mit den zwei Technologien. Ich versuche, Firebase-Auth für die Anwendungsauthentifizierung zu implementieren, aber ich gehe eine "Kann nicht lesen" signInWithPopup "undefined" Fehler.Polymer Firebase: Uncaught TypeError: Kann Eigenschaft 'signInWithPopup' von undefined nicht lesen

ich habe diesen Code:

<paper-toolbar> 
    <span class="title">Sample!</span> 
    <paper-icon-button 
    icon="[[statusIcon(signedIn)]]" 
    on-tap="processAuth"> 
    </paper-icon-button> 
</paper-toolbar> 
<firebase-auth 
    id="auth" 
    app-name="emotions" 
    provider="google" 
    signed-in="{{signedIn}}" 
    user="{{user}}"> 
</firebase-auth> 

und das Skript für processAuth

processAuth: function() { 
    this.$.auth.signInWithPopup(); 
} 

und die folgenden Komponenten wurden bereits importiert:

<link rel="import" href="../../bower_components/polymerfire/polymerfire.html"> 
<link rel="import" href="../../bower_components/polymerfire/firebase-auth.html"> 

Habe ich etwas verpasst?

Sorry für diese sehr noob Frage.

+0

Der Fehler verwenden wird Ihnen sagen, dass 'dies. $. Auth' ist nicht definiert. Sind die 'paper-toolbar'- und' firebase-auth'-Tags innerhalb des 'template'-Tags in Ihrem Polymer-Element? Die von Ihnen verwendete Methode ist die korrekte Methode für den Zugriff auf Elemente, die in einem Polymerelement verschachtelt sind. – anthony

+0

"firebase-auth.html" ist bereits in "polymerfire.html" importiert. Sie müssen es nicht erneut importieren. – Mohammed

Antwort

3

Stellen Sie sicher, firebase-app mit dem gleichen app-name initialisieren, bevor Sie firebase-auth

+0

Wie machen wir das? – RuNpiXelruN

-2

Verwenden Sie document.getElementById('auth') anstelle von this.$.auth.

Es scheint für mich, dass this.$.auth versucht, eine #auth innerhalb paper-icon-button zu finden, die nicht da ist. Überprüfen Sie console.log(this) von processAuth zu überprüfen, wo this zeigt auf.

+0

'document.getElementById ('auth')' dient zum Zugriff auf Objekte außerhalb eines Polymer-Elements. – anthony

Verwandte Themen