Установить номер телефона в качестве первичного ключа в Firebase и предотвратить дублирование - PullRequest
2 голосов
/ 07 мая 2019

Абсолютно новый для firebase, я хочу установить номер телефона в качестве первичного ключа (uid) и адрес электронной почты в качестве вторичного ключа.Как я могу предотвратить дублирование этих двух, если они существуют в моей базе данных Firebase?У меня нет аутентификации в моем приложении.Я делаю это для контактной формы, чтобы предотвратить дублирование

Ниже мой код JS

 // Submit form
function submitForm(e){
  e.preventDefault();

  // Get values
  var name = getInputVal('name');
  var company = getInputVal('company');
  var email = getInputVal('email');
  var phone = getInputVal('phone');
  var message = getInputVal('message');

  // Save message
  saveMessage(name, company, email, phone, message);
}

// Function to get get form values
function getInputVal(id){
  return document.getElementById(id).value;
}

// Save message to firebase
function saveMessage(name, company, email, phone, message){
  var newMessageRef = messagesRef.push();
  newMessageRef.set({
    name: name,
    company:company,
    email:email,
    phone:phone,
    message:message
  });
}

А ниже приведено правило, которое я установил в базе данных

{

 "rules": {
    ".read": "false",
    ".write": true,
    "phone": {  // assuming this as primary key
      ".validate": "newData.isString() && 
        newData.val().length == 10 &&
        !root.child('phone').child(newData.val()).exists()"
    }
   }
 }

enter image description here

1 Ответ

0 голосов
/ 07 мая 2019

Рекомендую не использовать номер телефона в качестве первичного ключа. используйте это как уникальное значение. похоже, что вы используете плагин jquery.validate, так что вы можете получить доступ к удаленной и заглянуть в свою базу данных, чтобы проверить дубликат числа .. в противном случае. в вашем сценарии .. перед вашей функцией saveMessage. вызовите ajax, чтобы взглянуть на базу если номер уже существует, запретите отправку формы и отправьте сообщение, что номер уже существует.

Пример удаленного доступа доступен на JQuery проверки с помощью вызова AJAX

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...