在JSON数据中嵌套变量

时间:2019-01-26 16:36:07

标签: javascript json firebase

我正在尝试将我的Firebase数据库设置为具有3个级别,最高级别是PatientID,第二级别是日期(作为字符串传递),最后一个是与患者输入的相关答案相关的一些问题

下面的代码大致显示了我的布局方式,运行时,here显示了Firebase数据库布局的屏幕截图。

我面临的问题是,当运行如下所示的函数时,我希望最顶层的名称为“ testID”,第二层的名称为“ 1-1-19”。但是,该函数没有传递这些输入的变量,而是传递了变量名,如屏幕截图所示。

是否可以这样设置数据库?这样一来,我可以轻松添加多个患者ID,并为每个患者ID添加多个日期,然后最后在每个日期回答问题。

function writeUserData(patientID, date, question1a, question1b, question1c, question2, question3, question4, question5, question6, question7, question8a, question8b, question8c) {
  firebase.database().ref("patients/").set({
    patientID: {
      date: {
        "question1a": question1a,
        "question1b": question1b,
        "question1c": question1c,
        "question2": question2,
        "question3": question3,
        "question4": question4,
        "question5": question5,
        "question6": question6,
        "question7": question7,
        "question8a": question8a,
        "question8b": question8b,
        "question8c": question8c
      }
    }
  });
}

writeUserData("testID", "1-1-19", 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8)

1 个答案:

答案 0 :(得分:1)

必须是

  firebase.database().ref("patients/").child("testID").child("1-1-19").set({
        "question1a": question1a,
        "question1b": question1b,
        "question1c": question1c,
        "question2": question2,
        "question3": question3,
        "question4": question4,
        "question5": question5,
        "question6": question6,
        "question7": question7,
        "question8a": question8a,
        "question8b": question8b,
        "question8c": question8c    
  });

很明显,您可以在需要时将变量传递给“ testID”和“ 1-1-19”

您也可以这样做

  firebase.database().ref("patients/" + "testID" + "/" + "1-1-19").set({....

用适合您的变量替换字符串