Firebaseデータベースを使用して、単一ページのWebサイトからの連絡先フォームの送信を保存します。そのデータは、最終的に認証が必要なバックエンドテクノロジと統合されますが、このフォームは簡単なコンタクト要求です。バックエンドシステムのFirebaseデータベースに連絡先を保存
フォームデータを送信するために、下のモジュールでgulp/webpackセットアップを実行しています。データを保存すると、サンプルのFirebase FunctionをNodemailerとともに使用して、連絡先の詳細を電子メールでgmailアカウントに送信する予定です。
これまで私はフォームを摂取することができませんでした!私は何か間違っているのですか?私はReactでこれを成功させてしまったので、Babel/ES6のセットアップがうまくいかないのは少し混乱しています。 (私はこの機能をメインのJSファイルで呼び出しています)
何か助けてください!下記をご覧ください:すべての
import * as firebase from 'firebase';
// Initialize Firebase
try {
var config = {
apiKey: "<HIDDEN FOR SECURITY>",
authDomain: "<HIDDEN FOR SECURITY>",
databaseURL: "<HIDDEN FOR SECURITY>",
projectId: "<HIDDEN FOR SECURITY>",
storageBucket: "<HIDDEN FOR SECURITY>",
messagingSenderId: "<HIDDEN FOR SECURITY>"
};
firebase.initializeApp(config);
} catch (e) {
}
function ContactForm() {
// Shortcuts to DOM Elements.
this.contactForm = document.getElementById('contact-form');
this.contactName = document.getElementById('contact-name');
this.contactEmail = document.getElementById('contact-email');
this.contactPhone = document.getElementById('contact-phone');
this.contactZipcode = document.getElementById('contact-zipcode');
this.contactMessage = document.getElementById('contact-message');
this.contactSubmit = document.getElementById('contact-submit');
}
/**
* Saves a new contact to the Firebase DB.
*/
ContactForm.prototype.ContactSubmit = function(name, email, phone, zipcode,
message) {
var firebaseRef = firebase.database().ref('contacts');
firebaseRef.child("contact").set({
name,
email,
phone,
zipcode,
message
}).then(() => {
console.log('stored to firebase');
}, (e) => {
console.log('failed to store to firebase');
});
var contactRef = firebaseRef.child().push(contact);
return contactRef;
}
// Saves message on form submit.
ContactForm.prototype.onsubmit = function(e) {
e.preventDefault();
var name = contactName.value;
var email = contactEmail.value;
var phone = contactPhone.value;
var zipcode = contactZipcode.value;
var message = contactMessage.value;
if (name && email && phone && zipcode && message) {
return ContactSubmit(name, email, phone, zipcode,
message).then(function() {
contactSubmit.click();
});
contactName.value = '';
contactEmail.value = '';
contactPhone.value = '';
contactZipcode.value = '';
contactMessage.value = '';
}
};
export default ContactForm;
あなたは素晴らしいキタンガです。 Firebaseからどの認証をもらうことなくuidを取得するにはどうすればいいですか? –
いつでも@JoeGrotto:D。正直なところ、最後の部分を無視するのが最善だと思いますが、私はその部分をあまり使用していません。しかし、私はまた、UIDが後で役に立つと思っています。それは[このライブラリを使ってUUIDを作成する](https://www.npmjs.com/package/uuid#quickstart---pre-packaged-for-browsers - 推奨されません)。 ChanceJSのguid()を使ってみることもできます。 uuid version4に準拠したJS実装の[要点](https://gist.github.com/jcxplorer/823878)があります。 –
上記のスニペットを確認し、上の説明を反映するように変更します。 –