0
データベースに新しいユーザーを追加しようとしていますが、繰り返しユーザーが必要ではありません。したがって、フォームに記載されている電子メールがデータベース内の電子メールと同じだが、電子メールがすでにデータベース内に見つかっているにもかかわらず、新しいデータを追加し続けていることを検証して確認しました。FirebaseとJavascriptのバリデーション
function checkUser(){
var sFName = document.getElementById("sfname").value;
var sLName = document.getElementById("slname").value;
var sPassword = document.getElementById("spassword").value;
var sEmail = document.getElementById("semail").value;
var config = {
apiKey: "some-key",
authDomain: "some-domain.firebaseapp.com",
databaseURL: "https://some-domain.firebaseio.com",
storageBucket: "some-domain.appspot.com",
messagingSenderId: "some-id"
};
if(firebase.apps.length===0){
firebase.initializeApp(config);
var database = firebase.database();
var dbRef = database.ref('ShowOffYourTalents');
var postData = {
firstname : sFName,
lastname : sLName,
email : sEmail,
password : sPassword,
birthdate: "",
gender: "",
address: "",
interests: "",
NRIC: ""
};
dbRef.once('value',function(snapshot){
snapshot.forEach(function(childSnapshot){
var childData = childSnapshot.val();
var cEmail = childData.email;
if(sEmail == cEmail){
document.getElementById("semail").style.borderColor = "red";
document.getElementById("error_3").innerHTML = "User already exists!<br/>";
}else if (sEmail !== cEmail){
dbRef.child(sFName+' '+sLName).set(postData);
document.getElementById("response").innerHTML =
"Registered";
}
});
});
}
}
コードが実行されると、「ユーザーは既に存在します」が表示されますが、データベースには新しいデータが作成されます。