Firebase查询未使用Javascript将变量提交到Firebase数据库中



我是javascript的初学者,正在css和html的帮助下创建一个联系我们表单。我创建了一个函数来将变量(姓名、电子邮件、反馈(推送到数据库,但不起作用。如有任何帮助,我们将不胜感激。

这是HTML:中的按钮

<div class="submit">
<button class="button" type="submit" onclick="submit()">Submit</button>
</div>

这个函数是JavaScript:

function submit() {
var firstName = document.getElementById('firstName');
var lastName = document.getElementById('lastName');
var emailAddress = document.getElementById('emailAddress');
var feedback = document.getElementById('feedback');
let ref = firebase.database().ref("feedback");
ref.push({
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
});
console.log("Feedback sent")

}

我可以看到";反馈发送";在控制台中。

编辑:我也尝试过这个代码,但它也不起作用:(

function submit() {
var firstName = document.getElementById('firstName');
var lastName = document.getElementById('lastName');
var emailAddress = document.getElementById('emailAddress');
var feedback = document.getElementById('feedback');
const database = firebase.database();
const ref = database.ref('feedback');
var data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
}
ref.push(data);
};

试试这个,

let ref = firebase.database().ref("feedback");
var newPostRef = ref.push();
newPostRef.set({
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
}));

Feedback sent日志并不能仅仅因为push((操作在代码的后面列出就保证它成功。异步操作(任何进入服务器或等待UI事件的操作(可能会在稍后完成。

这样的东西会给你更好的起点:

async function submit() {
const firstName = document.getElementById('firstName');
const lastName = document.getElementById('lastName');
const emailAddress = document.getElementById('emailAddress');
const feedback = document.getElementById('feedback');
const data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
};

let ref = firebase.database().ref("feedback");
try {
const res = await ref.push(data);
console.log("Feedback sent")
} catch(e) {
console.error(e);
}
}

或者承诺,如果这些更熟悉的话:

function submit() {
const firstName = document.getElementById('firstName');
const lastName = document.getElementById('lastName');
const emailAddress = document.getElementById('emailAddress');
const feedback = document.getElementById('feedback');
const data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
};

let ref = firebase.database().ref("feedback");
return ref.push(data)
.then(() => console.log("Feedback sent"))
.catch(e => console.error(e));
}

最新更新