私はユーザの電子メールを要求する簡単な入力ボックスを持っています。Firebaseの電子メール確認ワークフロー
私は彼らが文字列であることを確認するために何かを入力して、入力した電子メールアドレスに確認メールを送信します。
その後、ユーザのメールクライアント内で確認され、リンクがクリックされると、そのユーザを自分のFirebaseユーザに追加します。
現時点では、私はSMTP経由でメールを送信せずに、Firebaseにデータを追加するだけでテストしています。ただし、追加した電子メールはFirebaseデータベースに追加されません。他のスクリプトタグの前にHTMLの本体の底部、(?これは頭の中にあるべき)で
現在のコード:
<script src="https://www.gstatic.com/firebasejs/3.6.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "myapikey",
authDomain: "mydomain.firebaseapp.com",
databaseURL: "https://mydomain.firebaseio.com",
storageBucket: "mydomain.appspot.com",
messagingSenderId: "mymessagesenderid"
};
firebase.initializeApp(config);
</script>
<script src="assets/js/saveEmail.js" type="text/javascript"></script>
それから私は、入力ボックスを持っている:
<div class="mtb">
<h2 class="signup-title">Sign up for updates on our project</h2>
<p id="signup-success" class="text-success"></p>
<p id="signup-error" class="text-danger"></p>
<form class="signup-form form-inline" id="signup-form" role="form" onsubmit="return signup(this)">
<div id="div">
<input type="email" name="email" class="subscribe-input" placeholder="Enter your e-mail address..." required>
<button class='btn btn-conf btn-yellow' id="signup-button" type="submit">Submit
</button>
</div>
</form>
</div>
そして、これはsaveEmail.js
次のとおりです。
var signupForm = document.getElementById('signup-form');
var signupSuccess = document.getElementById('signup-success');
var signupError = document.getElementById('signup-error');
var signupBtn = document.getElementById('signup-button');
var onSignupComplete = function (error) {
signupBtn.disabled = false;
if (error) {
signupError.innerHTML = 'Sorry. Could not signup.';
} else {
signupSuccess.innerHTML = 'Thanks for signing up!';
// hide the form
signupForm.style.display = 'none';
}
};
function signup(formObj) {
// Store emails to firebase
var myFirebaseRef = new Firebase("https://mydomain.firebaseio.com/signups");
myFirebaseRef.push({
email: formObj.email.value,
}, onSignupComplete);
signupBtn.disabled = true;
return false;
}
私が知っているsignup
楽しいこと送信ボタンがクリックされたときにポップアップする簡単なJSアラートを試してみたところ、ctionが呼び出されていました。しかし、Firebaseのデータダッシュボードの/signups
セクションに何も変更はありません。また、へのURLの変更:だから私は、私はテスト目的のためにすべてを有効にしているとして、これはルールではないと仮定し
{"rules":
{".read": true,
".write": true
}
}
:
http://localhost:5000/?email=theemailthatwasputintothebox
私はに私のルールを変更しました。
私は達成したいことを達成するにはどうしたらいいですか?
SendGridなどを介した電子メールの確認なしに、既存の設定に問題がありますか?
ありがとう@Rexford、これは完璧です。私は電子メールの一意性をどのように保つのですか?一組のFirebase IDはユニークですが、押し込んだ電子メールには束縛されません。固有の電子メールのみを許可し、その電子メールがHTMLページにすでに登録されているかどうかを警告します。 –
@DhruvGhulati電子メールとパスワードからcreate userのFirebase機能は、エラーが既に存在する場合、電子メールの重複エラーを返します。 – ostergaard