如何在Firebase托管中创建邮件联系表单?

时间:2017-09-08 14:51:10

标签: javascript php jquery firebase

我正在尝试将我的网站迁移到Firebase托管,但我有一个联系表单PHP邮件,我也想在Firebase中使用。我可以做吗?怎么样?

谢谢!

2 个答案:

答案 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

通过这种方式,您可以在站点中使用服务器端语言制作功能齐全的联系表单。