これは非同期JavaScriptを完全に理解していない私の問題だと確信していますが、私の問題を説明します。
Firebase で認証されたメール/パスワードがあり、次のフォームのログイン ページがあります。
<form class="form-signin" role="form" action="#" onsubmit="return login(this);">
<h2 class="form-signin-heading">Please log in</h2>
<input type="email" id="email" class="form-control" placeholder="Email address" required autofocus>
<input type="password" id="password" class="form-control" placeholder="Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Log in</button>
</form>
ボタンをクリックすると、JS コンソールに次のエラーが表示され、非常に速く点滅します。
キャッチされていない TypeError: 未定義のプロパティ 'token' を読み取れません --- firebase-simple-login.js:132
head タグの下部にスクリプト「js/firebase.js」を含めます。これがそのファイルです。
var myRef = new Firebase("https://xxxx.firebaseio.com");
var auth = new FirebaseSimpleLogin(myRef, function(error, user) {
if (error) {
console.log(error);
} else if (user) {
console.log("User ID: " + user.uid + ", Provider: " + user.provider);
} else {
}
});
function login(form)
{
auth.login('password', {
email: form.email.value,
password: form.password.value
});
}
フォームに入力した後、ボタンを押すとエラーが発生し、フィールドが空白になり、URL の末尾に「?#」が追加されます。この後にログインしようとすると、完全に機能します。前もって感謝します!