Firebase数据库().ref()不存在路径



在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"
}
}
}
}

如果上面的代码会返回一个错误,我该怎么做才能测试一个键是否存在,如果它不存在,就添加它,然后在其中推送一些东西?

也许您可以尝试创建childVar1的完整内容,并直接插入到您的数据库中,包括childVar2: {data: test}(我认为您使用的是RealtimeDatabase(。

const ref = firebase.database().ref("dataTree/" + childVar1);
ref.push(
"childVar2": {
"data": "this is data"
}
);

您可以写入数据库中的任意位置,并且将自动为您创建任何不存在的所需节点。您不必单独创建每个子节点。

类似地,如果一个节点的所有子节点都被删除,则该节点本身将被自动删除(不存在"空"子节点这回事(。