0
試圖建立一個基本的登錄和使用JavaScript和jQuery與火力電子郵件/密碼認證註冊的形式。用戶註冊和登錄「Reference.push失敗:第二個參數必須是有效的功能」
但是我收到此錯誤「Reference.push失敗:第二個參數必須是一個有效的功能」,在我的控制檯@此行
database.ref().push(emailnew, passwordnew);
我一直期待在這裏計算器和火力點內docs看看如何糾正這個問題,但我空手而來。我也覺得我的JS文件可能比所需的更多,但我不確定如何簡化它。到目前爲止,沒有任何東西被推送到數據庫。我並不完全熟悉Firebase,因此任何添加的提示都會非常有幫助,謝謝。
理想與成功的新的用戶帳戶創建或登錄,該初始頁面會然後將用戶重定向到實際的應用頁面。
這裏是HTML表單
會員註冊
<div class="field-wrap">
<label>
Name<span class="req">*</span>
</label>
<input type="name" id="name" required autocomplete="off"/>
</div>
<div class="field-wrap">
<label>
Email Address<span class="req">*</span>
</label>
<input type="email-signup" id="emailSignup" required autocomplete="off"/>
</div>
<div class="field-wrap">
<label>
Set A Password<span class="req">*</span>
</label>
<input type="password-signup" id="passwordSignup" required autocomplete="off"/>
</div>
<button type="" id="signupbutton" />Get Started</button>
</div>
<!-- User Login Form -->
<div id="login">
<h1>Welcome</h1>
<div class="field-wrap">
<label>
Email Address<span class="req"></span>
</label>
<input type="emailLogin" id="emailLogin" required autocomplete="off"/>
</div>
<div class="field-wrap">
<label>
Password<span class="req"></span>
</label>
<input type="passwordLogin" id="passwordLogin" required autocomplete="off"/>
</div>
<p class="forgot"><a href="#">Forgot Password?</a></p>
<button class="button button-block" id="login" />Log In</button>
<div id=loginmessage>
</div>
這裏是我的user.js的與火力一體化文件,如下所示:
// Initialize Firebase
var config = {
apiKey: 'AIzaSyBU1fYqhQrVskqgA0Okr3ZStPfYz0s3QWQ',
authDomain: "https://lackluster-5966e.firebaseapp.com",
databaseURL: 'https://lackluster-5966e.firebaseio.com',
projectId: "lackluster-5966e",
storageBucket: 'https://lackluster-5966e.appspot.com',
messagingSenderId: "489067404953"
};
firebase.initializeApp(config);
// var firebaseref = new Firebase("https://lackluster-5966e.firebaseapp.com");
var database = firebase.database();
var auth = firebase.auth();
var user = firebase.auth().currentUser;
console.log(config);
var emailnew;
var passwordnew;
//Collect User Data from Signup
$("#signupbutton").click(function(event){
event.preventDefault();
emailnew = $("#emailSignup").val();
passwordnew = $("#passwordSignup").val();
database.ref().push(emailnew, passwordnew); //Error occurs
console.log(emailnew);
console.log(passwordnew);
});
//Creates New User via Firebase Authentication
var promise = auth.createUserWithEmailAndPassword(emailnew, passwordnew);
promise.then(function(user) {
user.sendEmailVerification().then(function() {
// Email sent.
}, function(error) {
// An error happened.
});
//Sends User Info to firebase DB
user.updateProfile({
Name: name,
Email: emailnew
}).then(function() {
// Update successful.
}, function(error) {
// An error happened.
});
// Clears all of the text-boxes for user signup
$("#emailSignup").val("");
$("#passwordSignup").val("");
//User Login Event
var emailLogin = document.getElementById('emailLogin');
var passwordLogin = document.getElementById('passwordLogin');
$("#login").click(function(event){
event.preventDefault();
var email = emailLogin.value;
var password = passwordLogin.value;
var auth = firebase.auth();
var promise = auth.signInWithEmailAndPassword(email, password);
promise.catch(function (e) {
return console.log(e.message);
});
// //Page redirect
// firebase.auth().onAuthStateChanged(user => {
// if(user) {
// window.location = 'index.html';
// }
// else{
// //Do nothing.
// }
// });
// Authentication Listner
// Verifies that login credentials are correct otherwise returns error message
var Message = "<div class=\"loginmessage\">" + "Login Unsuccessful" + "</div>";
firebase.auth().onAuthStateChanged(function (firebaseUser) {
if (firebaseUser) {
console.log(firebaseUser);
} else {
$('#loginmessage').append(Message);
console.log('not logged in');
} // end else statement
}); // end function
});
// Clears all of the text-boxes for user login
$("#emailLogin").val("");
$("#passwordLogin").val("")
});
謝謝!這解決了我的電話問題,並且控制檯日誌顯示輸入的值,但輸入的數據未填充到Firebase中。我認爲我的電話有問題,但無法弄清楚問題所在。 – chlc