【问题标题】:Is ther a way to set user input as name for 2nd level node in Firebase有没有办法将用户输入设置为 Firebase 中二级节点的名称
【发布时间】:2018-02-25 13:54:52
【问题描述】:

我有一个 html 表单,它将用户数据发送到 firebase db,目前看起来如下图所示。如果我使用 push 方法保存用户数据,则会生成乱码的唯一 ID,如果我使用 set,则必须输入节点标题作为字符串,但我打算添加例如用户的电子邮件作为节点用户的标题,所以每个用户都有自己的节点(他的电子邮件下的姓名编号等),不确定是否可能,无法找到任何方法,firebase 文档中也没有。

有什么想法吗?

var registration = firebase.database().ref("REGISTRATION")

function dbsave(){
  var email = $("#email").val();
  var name = $("#name").val();
  var password = $("#password").val();
  var genval = $("#gender").val();
  var date = $("#date").val();
  var ContactNumber = $("#phone").val();
  var school = $("#school").val();
  var clas = $("#clas").val();
  var classname = $("#classname").val();

registration.push({
    Email: email,
    Name: name,
    Password: password,
    Gender: genval,
    Birthday: date,
    ContactNumber: phone,
    State: state,
    School: school,
    Class: clas
})
}

enter image description here

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    我认为使用电子邮件地址作为密钥不是一个好主意,尤其是因为如果用户使用相同的电子邮件地址创建了多个帐户,则可以合并帐户。

    按你所说的那样使用那个乱码。这就是它为您服务的原因。在此之下,您拥有自己的属性 email、displayName 等。

    【讨论】:

    • 我打算禁止创建相同的电子邮件地址,我打算做的是检查电子邮件键/值是否已经存在,如果是,则用户将无法创建新帐户,就是这个想法..
    • Firebase 身份验证子系统会为您完成这项工作。它已经出炉了。我认为 Web ui 上什至有一个开关来禁止多个帐户使用相同的电子邮件。试试吧。 github.com/rhroyston/firebase-v4-auth
    • 谢谢,我会试试的,但出于好奇,是否有可能做我正在寻找的事情,这让我的工作更方便,更有条理..
    • 从一开始就获得数据库结构,否则您将不得不工作 3 倍才能稍后重新做。他们告诉你如何正确开始。见Structure Your Database 你想要一个顶级的users 节点推入每个子节点是一个键,其子节点是姓名、地址、喜欢的颜色等。
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多