Firebase数据库:将生成的密钥更改为自定义密钥+结构

时间:2018-04-18 12:02:16

标签: firebase firebase-realtime-database

我正在制作聊天机器人,因此我希望在Firebase中实现以下结构。

enter image description here

如果有人想知道ADHD是什么,我可以通过编辑数据库参考ref('data/disorders/' + disorder + '/' + questionType')来轻松获取数据。

不幸的是,我无法获得这种结构:

问题1 :在添加问题和答案之前,我想创建一个不同的疾病列表。

我使用的是push()函数(Database.ref('chatbot/disorders').push(disorder)),但结果并非我所寻找的。

enter image description here

问题2 :如何将自动生成的密钥更改为ADHD或抑郁等疾病名称?

更新:

首先,我想首先实现这个结构:

{ "disorders": { "ADHD" "autisme" "depression" "..." } }

当添加问题时:

{ "disorders": { "ADHD": { "what": "ADHD is ...", "signs": "The main symptoms of ADHD are ...", "types": "There are three different ..." } "autisme": { "what": "Autism ..." } "..." } }

1 个答案:

答案 0 :(得分:1)

当您需要generate automatically密钥保存时,可以使用推送。

如果您需要使用自己的密钥保存数据,则可以避免使用它。例如,在您的情况下,您可以use set

var disorder = {'description': 'Attention deficit...'};
Database.ref('chatbot/disorders/ADHD').set(disorder);

或者你可以use update

var disorder = {'ADHD':{'description': 'Attention deficit...'}};
Database.ref('chatbot/disorders').update(disorder);

对于您的“问题1”,我认为您应该检查您的数据库结构。也许这样的事情可能会成功:

{
    "disorders": {
        "ADHD": {
            "description": "Disorder mainly hitting children ...",
            "posts": {
                "autogenerated-key-via-push": {
                    ...
                }...
            }
        }
    }
}