7

我試圖讓身份驗證(電子郵件/密碼)在Chrome擴展程序中運行。我似乎工作得很好,如果我把我的身份驗證代碼放在後臺腳本中。然而,我似乎無法讓它作爲瀏覽器動作腳本工作。Chrome擴展程序中的Firebase身份驗證彈出式窗口

我用下面的代碼作爲我擴展的基礎:https://github.com/firebase/firebase-chrome-extension

我改變browser_action.js到:

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

我不停現有browser_action.html不變:

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

當我加載擴展名並點擊圖標時,它會在控制檯中給出以下錯誤:

Uncaught TypeError: f.authWithPassword is not a function 

如果我將firebase代碼和驗證代碼移到background.js文件中,它會起作用,並向我發出警報,告知它已成功驗證。

我在做什麼錯,或爲什麼這是不可能的?

回答

4

該示例Chrome擴展程序未在3年內更新,因此其Firebase版本已過期。將https://cdn.firebase.com/v0/firebase.js替換爲browser_action.html中的https://cdn.firebase.com/js/client/2.2.1/firebase.js,您應該可以成功使用authWithPassword

+0

我是一個白癡:')...我認爲v0意味着它總是會得到最新版本的庫。我錯了XD – DivZero

相關問題