7

Ich versuche, Authentifizierung (E-Mail/Passwort) in einer Chrome-Erweiterung zu arbeiten. Ich scheint gut zu funktionieren, wenn ich meinen Authentifizierungscode in das Hintergrundskript lege. Allerdings kann ich es nicht als Browser-Action-Skript funktionieren.Firebase-Authentifizierung in Chrome Extension Popup

verwendete ich den folgenden Code als Basis meiner Erweiterung:

Firebase.enableLogging(true); 
var f = new Firebase('https://myapp.firebaseio.com/'); 

f.authWithPassword({  
    email : "[email protected]", 
    password : "1234" 
}, function(error, authData) { 
    if (error) { 
     alert("Login Failed!", error); 
} else { 
    alert("Authenticated successfully with payload:", authData); 
} 
}); 

Und ich behielt die bestehenden browser_action.html unverändert:

<!doctype html> 


<style type="text/css"> 
    #mainPopup { 
     padding: 10px; 
     height: 200px; 
     width: 400px; 
     font-family: Helvetica, Ubuntu, Arial, sans-serif; 
    } 
    h1 { 
     font-size: 2em; 
    } 
</style> 

<div id="mainPopup"> 
<h1>Firebase test!</h1> 
<p>Clicks: <span id="contents"></span></p> 
</div> 

<script type="text/javascript" src="https://cdn.firebase.com/v0/firebase.js"></script> 
<script src="browser_action.js"></script> 
https://github.com/firebase/firebase-chrome-extension

I browser_action.js geändert

Wenn ich die Erweiterung lade und auf das Symbol klicke, erscheint folgender Fehler in der Konsole:

Wenn ich den Firebase-Code und den Authentifizierungscode in die Datei background.js verschiebe, funktioniert es und gibt mir eine Warnung, dass es erfolgreich authentifiziert wurde.

Was mache ich falsch oder warum ist das nicht möglich?

Antwort

4

Diese Beispiel-Chrome-Erweiterung wurde in 3 Jahren nicht aktualisiert, daher ist ihre Firebase-Version veraltet. Ersetzen Sie https://cdn.firebase.com/v0/firebase.js durch https://cdn.firebase.com/js/client/2.2.1/firebase.js in browser_action.html, und Sie können authWithPassword erfolgreich verwenden.

+0

Ich bin ein Idiot: ') ... Ich nahm an, dass v0 bedeutete, dass es immer die neueste Version der Bibliothek bekommen würde. Ich lag falsch XD – DivZero

3

Für alle, die dies seit Juli 2016 erfahren, hat Firebase aktualisierte Anweisungen zur Einrichtung der Authentifizierung für Chrome-Erweiterungen (in ihrem Beispiel verwenden sie Google Auth). Ich bin durch einen Haufen Reifen gesprungen, bevor ich auf diesen Posten gestoßen bin.

Verwandte Themen