简体   繁体   English

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

[英]How do I make mail contact form in Firebase hosting?

I'm trying to migrate my website to Firebase hosting, but I have a contact form PHP mail that I want to use in Firebase too. 我正在尝试将我的网站迁移到Firebase托管,但我有一个联系表单PHP邮件,我也想在Firebase中使用。 Can I do It? 我可以做吗? And How? 如何?

Thanks! 谢谢!

Firebase hosting only serves static content, this means you can't use PHP or any server-side language there. Firebase托管仅提供静态内容,这意味着您无法使用PHP或任何服务器端语言。

On the other hand, you can still use Firebase functions to send an email using an HTTP trigger via AJAX with Javascript. 另一方面,您仍然可以使用Firebase功能通过带有Javascript的AJAX使用HTTP触发器 发送电子邮件

This way, you can make a fully functional contact form without using server-side languages in your site. 这样,您就可以在站点中使用服务器端语言来创建功能齐全的联系表单。

You can create form and then submit the user data to Firebase Database and view it from your Admin Dashboard. 您可以创建表单,然后将用户数据提交到Firebase数据库并从管理仪表板查看。

You can do something like this: 你可以这样做:

//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.');
  }
});

The above code takes 4 user values, generates timestamp and inserts the data in Firebase Database and if you have an admin dashboard, you can use it to view it and perform further actions on it from there. 上面的代码需要4个用户值,生成时间戳并在Firebase数据库中插入数据,如果您有管理仪表板,则可以使用它来查看它并从那里对其执行进一步操作。

Here's how you can send email using emailjs.com 以下是使用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);
    }
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM