首页 > 解决方案 > Firebase database().ref() 不存在的路径

问题描述

在 firebase 中,我的应用程序将一直创建嵌套数据。我的问题是我是否必须先检查密钥是否存在才能引用它,或者我可以...

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

它会为我创建嵌套结构吗?IE :

{
    "dataTree": {
        "notChildVar1": {
            "someChildName": {
                "data": "test"
            }
        }
        "alsoNotChildVar1": {
            "someChildName": {
                "data": "test"
            }
        }
    }
}

应该成为...

{
    "dataTree": {
        "notChildVar1": {
            "someChildName": {
                "data": "test"
            }
        }
        "alsoNotChildVar1": {
            "someChildName": {
                "data": "test"
            }
        }
        "childVar1": {
            "childVar2": {
                "data": "test"
            }
        }
    }
}

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

标签: firebasefirebase-realtime-database

解决方案


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

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

推荐阅读