使用 simpleLogin 将日期输入数据保存到 Firebase 的正确方法

Proper way to save date input data to Firebase with 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 key:value 对: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。

如果我在 var userInfo 之后立即执行 console.log("user.birthdate: "+ user.birthdate); 我可以看到在日期选择器中选择的日期...所以我知道它是从表单中获取的进入那个寄存器函数。

我猜 simpleLogin 只能有名字、姓氏和电子邮件?

一些有用的注释:

  • Firebase Simple Login 已被 Firebase 弃用,以支持每个 Firebase 客户端库中内置的本机身份验证方法。也就是说,它会继续工作。
  • Firebase 简单登录和本机 Firebase 身份验证都只是委托身份验证服务。也就是说,它们仅存储凭据以使您的应用程序中的身份验证更容易,但它们不存储任意用户数据。你的 Firebase 是最好的选择。
  • 在上面的示例中,写入 new Firebase(.../users) 是写入 Firebase,而不是身份验证服务,您可以在那里写入您选择的任意数据。 但是,请检查您输入的生日类型。 Firebase 叶子值可以是 stringnumberbooleannull 类型 - 但您的日期选择器可能会返回一个 Object恰好 toString() 正确。