【问题标题】:Nesting variables in JSON data在 JSON 数据中嵌套变量
【发布时间】:2019-01-26 16:36:07
【问题描述】:

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

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

我面临的问题是,在运行如下所示的函数时,我希望最顶层命名为“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)

【问题讨论】:

  • 诚然不熟悉 firebase,但考虑到原生 JS,我会尝试将属性名称放在方括号中。 (例如 [date]: 而不是 date:
  • 这按预期工作,谢谢,但是由于我定义函数的方式,如果我更改日期,它将完全覆盖任何以前写入的数据。不过,@Mocas 的想法似乎可行。

标签: javascript json firebase


【解决方案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({....

并用你的变量替换字符串,无论你适合什么

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 2019-05-21
    • 2018-03-11
    • 1970-01-01
    • 2022-06-14
    • 2011-11-03
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多