Я пытаюсь получить аутентификацию (адрес электронной почты / пароль) для работы в расширении Chrome. Кажется, у меня все работает нормально, если я помещаю свой код аутентификации в фоновый скрипт. Однако я не могу заставить его работать как скрипт действия браузера.
Я использовал следующий код в качестве основы своего расширения: 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, он заработает и выдает предупреждение об успешной аутентификации.
Что я делаю не так или почему это невозможно?