我正在尝试将我的网站迁移到Firebase托管,但我有一个联系表单PHP邮件,我也想在Firebase中使用。我可以做吗?怎么样?
谢谢!
答案 0 :(得分:5)
您可以创建表单,然后将用户数据提交到Firebase数据库并从管理信息中心查看。
您可以这样做:
//Handling Contact Form
document.getElementById('submit').addEventListener('click', event => {
const leadName = document.getElementById('client_name').value;
const leadEmail = document.getElementById('client_email').value;
const leadMobile = document.getElementById('client_mobile').value;
const leadMessage = document.getElementById('client_message').value;
if(leadMobile != "" && leadEmail != "" && leadName != "") {
const leadTimestamp = Math.floor(Date.now() / 1000);
firebase.database().ref('leads').once('value', snapshot => {
var totalLeads = snapshot.numChildren();
totalLeads++;
firebase.database().ref('leads').child(totalLeads).set({
name: leadName,
mobile: leadMobile,
email: leadEmail,
message: leadMessage,
timestamp: leadTimestamp
});
$('.contact-form').hide();
$('.message-sent-success').show();
}, function(error) {
console.log(error);
});
} else {
alert('Please fill all the fields.');
}
});
以上代码需要4个用户值,生成时间戳并在Firebase数据库中插入数据,如果您有管理仪表板,则可以使用它来查看它并从那里对其执行进一步操作。
以下是使用emailjs.com
发送电子邮件的方法emailjs.send("gmail", "<template_name>", { //template_name is set via emailjs.com dashboard
content: email_description // you can store user data in any such variable
}).then(
function(response) {
document.write("Email sent successfully!");
},
function(error) {
document.write("Failed to send email.");
console.log(error);
}
);
答案 1 :(得分:3)
Firebase hosting仅提供静态内容,这意味着您无法在那里使用PHP或任何服务器端语言。
另一方面,您仍然可以使用Firebase functions通过AJAX和Javascript使用send an email HTTP trigger。
通过这种方式,您可以在站点中使用服务器端语言制作功能齐全的联系表单。