【发布时间】: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