在firebase中,我的应用程序将始终创建嵌套数据。我的问题是我必须先检查密钥是否存在才能引用它,还是可以...
const ref = firebase.database().ref("dataTree/" + childVar1 + "/" + childVar2);
ref.push({data: "this is data"});
它将为我创建嵌套结构吗?即:
{
"dataTree": {
"notChildVar1": {
"someChildName": {
"data": "test"
}
}
"alsoNotChildVar1": {
"someChildName": {
"data": "test"
}
}
}
}
应该成为...
{
"dataTree": {
"notChildVar1": {
"someChildName": {
"data": "test"
}
}
"alsoNotChildVar1": {
"someChildName": {
"data": "test"
}
}
"childVar1": {
"childVar2": {
"data": "test"
}
}
}
}
如果上面的代码将返回错误,我该怎么做才能测试密钥是否存在,如果密钥不存在则添加密钥,然后在其中推送内容?
答案 0 :(得分:3)
也许您可以尝试创建childVar1
的全部内容,然后直接将其插入数据库中,包括childVar2: {data: test}
(我想您正在使用RealtimeDatabase)。
const ref = firebase.database().ref("dataTree/" + childVar1);
ref.push(
"childVar2": {
"data": "this is data"
}
);
答案 1 :(得分:0)
您可以写入数据库中的任意位置,并且将自动为您创建任何不存在的必需节点。您不必单独创建每个子节点。
类似地,如果删除节点的所有子节点,则该节点本身将被自动删除(不存在“空”子节点之类的东西)。