如何使用Javascript检查Firebase中是否存在电子邮件?

时间:2018-09-11 17:05:01

标签: javascript database firebase login

// Initialize Firebase
  var config = {
    apiKey: "AIzaSyA_kaqHtpvjFeagx0BYKdSCeQVCDvG5ESM",
    authDomain: "pilot-860c1.firebaseapp.com",
    databaseURL: "https://pilot-860c1.firebaseio.com",
    projectId: "pilot-860c1",
    storageBucket: "",
    messagingSenderId: "897069842460"
  };
  firebase.initializeApp(config);

  // references message collections

  var messageRef = firebase.database().ref("messages");

window.onload = form;

// Legg til en addEventListener som ser etter en submit, og kall funksjonen submitForm
  function form(){
    document.getElementById("signupform").addEventListener("submit", submitForm);
  }


  function submitForm(e){

    e.preventDefault();


    // hent values
    var fname = getInputValues("fname");
    var lname = getInputValues("lname");
    var email = getInputValues("email");
    var phone = getInputValues("phone");
    var pass = getInputValues("p1");


    // save form and info
    saveForm(fname, lname, email, phone, pass);

    // show alert if sent
    document.getElementById("formRegistered").style.display = "block";


    // hide alert after 3 sec and hide formRegistered span
    setTimeout(function(){
      document.getElementById('formRegistered').style.display = "none";
    }, 3000);

    // reset form after
    document.getElementById("signupform").reset();

  }

  function getInputValues(id){
    return document.getElementById(id).value;

  }
// Save form like this
  function saveForm(fname, lname, email, phone, pass){
    var newMessageRef = messageRef.push();
    newMessageRef.set({
      name: fname,
      lastname: lname,
      email: email,
      phone: phone,
      pw: pass
    });
  }

所以这是我的代码,我尝试添加if语句,但是我似乎无法访问我的Firebase来检查该电子邮件是否存在,我想基本上告诉用户该电子邮件是否已注册(如果已存在)火力基地。我也看过文档,但我不明白

1 个答案:

答案 0 :(得分:0)

请尝试使用Firebase Auth进行用户注册和身份验证,而不是将其写入数据库,因为基本上是要写入数据库,因此您将需要用户,并且如果您打算让数据库保持写入状态,那么这可能是个坏主意。

Firebase Auth

使用firebase auth的下一步,您可以使用以下方法检查用户是否存在:如果用户存在/已经注册,则返回一个非空的列表

fetch Providers for email