Правильный способ сохранения данных ввода даты в Firebase с помощью simpleLogin

Я новичок в firebase, и я пытаюсь добавить поле «Дата рождения» в форму и сохранить его в Firebase.

Поле ввода в форме выглядит так:

<label for="birthdate">Date of Birth</label>
  <input type="date" id="birthdate" name="birthdate" 
  ng-model="user.birthdate" ng-required="true" placeholder="Last Name">
  <p class="error validationerror"
  ng-show="myform.birthdate.$invalid && myform.birthdate.$touched">
  Birthdate is required</p>  

Следуя руководству lynda.com, рабочая функция регистрации была создана следующим образом:

register : function(user) {
      return simpleLogin.$createUser(user.email, user.password)
      .then(function(regUser){
        var ref = new Firebase(FIREBASE_URL + 'users');
        var firebaseUsers = $firebase(ref);

        var userInfo = {
          date: Firebase.ServerValue.TIMESTAMP,
          regUser: regUser.uid,
          firstname: user.firstname,
          lastname: user.lastname,
          email: user.email
        }

        firebaseUsers.$set(regUser.uid, userInfo);
      }); //add user
    }, //register

Я попытался просто добавить еще одну пару birthdate: user.birthdate ключ:значение в конец после email: user.email, но это не сработало.

register : function(user) {
      return simpleLogin.$createUser(user.email, user.password)
      .then(function(regUser){
        var ref = new Firebase(FIREBASE_URL + 'users');
        var firebaseUsers = $firebase(ref);

        var userInfo = {
          date: Firebase.ServerValue.TIMESTAMP,
          regUser: regUser.uid,
          firstname: user.firstname,
          lastname: user.lastname,
          email: user.email,
          birthdate: user.birthdate
        }

        firebaseUsers.$set(regUser.uid, userInfo);
      }); //add user
    }, //register

Ничего не добавляется в firebase для даты рождения.

Если я делаю console.log("user.birthdate: "+ user.birthdate); сразу после var userInfo, я вижу дату, которая была выбрана в средстве выбора даты... поэтому я знаю, что она попадает из формы в эту функцию регистрации.

Я предполагаю, что simpleLogin может иметь только имя, фамилию и адрес электронной почты?


person Livi17    schedule 24.01.2015    source источник
comment
Учитывая, что существует руководство по теме аутентификации, который включает раздел о хранении пользовательских данных. , я бы рекомендовал перейти на текущую версию SDK, покопаться в этих руководствах и избавить себя от тонны возни с фундаментальными концепциями.   -  person Kato    schedule 27.01.2015
comment
Спасибо за совет. Я закончил обучение на lynda.com и пытался изменить то, чему учили в этом руководстве. Я предполагаю, что учебник устарел, учитывая, что простой вход в Firebase устарел.   -  person Livi17    schedule 29.01.2015


Ответы (1)


Несколько полезных заметок:

  • Firebase Простой вход в Firebase устарел в пользу собственные методы аутентификации, встроенные в каждую из клиентских библиотек Firebase. Тем не менее, он будет продолжать работать.
  • Как простой вход в Firebase, так и встроенная аутентификация Firebase — это всего лишь делегированные службы аутентификации. То есть они хранят учетные данные только для упрощения аутентификации в вашем приложении, но не хранят произвольные пользовательские данные. Ваша Firebase — лучшая игра для этого.
  • В приведенном выше примере запись в new Firebase(.../users) — это запись в Firebase, а не в службу аутентификации, и вы можете записать туда любые произвольные данные по вашему выбору. Однако проверьте тип даты рождения, которую вы пишете. Значения листа Firebase могут иметь тип string, number, boolean или null, но вполне вероятно, что ваш указатель даты может возвращать Object, что правильно происходит с toString().
person Rob DiMarco    schedule 26.01.2015