7

Sto cercando di ottenere l'autenticazione (email/password) per funzionare in un'estensione di Chrome. Mi sembra che funzioni bene se inserisco il mio codice di autenticazione nello script di sfondo. Tuttavia non riesco a farlo funzionare come uno script di azione del browser.Autenticazione Firebase in popup Estensione Chrome

ho usato il seguente codice come la base della mia estensione: https://github.com/firebase/firebase-chrome-extension

ho cambiato browser_action.js a:

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); 
} 
}); 

E ho mantenuto la browser_action.html esistente invariato:

<!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> 

Quando carico l'estensione e faccio clic sull'icona, viene visualizzato il seguente errore nella console:

Uncaught TypeError: f.authWithPassword is not a function 

Se sposto il codice Firebase e il codice di autenticazione per il file background.js funziona e mi dà un avviso che è successo autenticato.

Cosa sto sbagliando o perché non è possibile?

risposta

4

Questo esempio di estensione chrome non è stato aggiornato in 3 anni, quindi la sua versione di Firebase non è aggiornata. Sostituire https://cdn.firebase.com/v0/firebase.js con https://cdn.firebase.com/js/client/2.2.1/firebase.js in browser_action.html e si dovrebbe essere in grado di utilizzare authWithPassword correttamente.

+0

Sono un idiota: ') ... Supponevo che v0 significasse sempre ottenere l'ultima versione della libreria. Ho sbagliato XD – DivZero