如何正确设置Firebase实时数据库以避免数组开头出现空值?

如何正确设置Firebase实时数据库以避免数组开头出现空值?,firebase,firebase-storage,Firebase,Firebase Storage,我是NoSQL数据库的新手。目前我正在尝试使用Firebase并将其与iOS集成。当涉及到预定义数据库时,通过反复试验,我尝试使其看起来像这样: [ <null>, { comments: [ <null>, 1, 2, 3 ], desc: "Blue versus red in a classic battle

我是NoSQL数据库的新手。目前我正在尝试使用Firebase并将其与iOS集成。当涉及到预定义数据库时,通过反复试验,我尝试使其看起来像这样:

[
    <null>,
    {
        comments: [
            <null>,
            1,
            2,
            3
        ],
        desc: "Blue versus red in a classic battle of good versus evil and right versus wrong.",
        duration: 30,
        rating: 4.42,
        tags: [
            <null>,
            "fantasy",
            "scifi"
        title: "The Order of the Midnight Sun",
        writer: 1
        ]
    }
]

当我尝试在iOS中检索“故事”路径时,我得到如下json结构:

[
    <null>,
    {
        comments: [
            <null>,
            1,
            2,
            3
        ],
        desc: "Blue versus red in a classic battle of good versus evil and right versus wrong.",
        duration: 30,
        rating: 4.42,
        tags: [
            <null>,
            "fantasy",
            "scifi"
        title: "The Order of the Midnight Sun",
        writer: 1
        ]
    }
]
[
,
{
评论:[
,
1.
2.
3.
],
描述:“在一场经典的善恶对错之战中,蓝色对红色。”,
持续时间:30,
评级:4.42,
标签:[
,
“幻想”,
“科幻”
标题:“午夜太阳的秩序”,
作者:1
]
}
]

我的问题是,为什么每个数组的开头总是有一个null?如何在数据库编辑器中避免空值?

看起来您开始将数据推送到索引1而不是0,在列表中插入/检索数据从索引0开始:


看起来您开始将数据推送到索引1而不是索引0,在列表中插入/检索数据从索引0开始:


哦,好吧,我不认为这个数字有任何意义。我只是“强迫”把任何东西放在键上,所以我只放(随机)数字,在这个例子中,一系列数字从1开始。谢谢@陈立勇总的来说,在NoSQL数据库中应该避免使用数组。它们不可查询,也不可编辑,如果您想更改已读取的内容,然后重新写入整个数组。还有更好的选择。请看这篇Firebase文章,还有一些附加信息。哦,好吧,我认为这个数字根本没有任何意义。我只是“强迫”把任何东西放在键上,所以我只放(随机)数字,在这个例子中,一系列数字从1开始。谢谢@陈立勇总的来说,在NoSQL数据库中应该避免使用数组。它们不可查询,也不可编辑,如果您想更改已读取的内容,然后重新写入整个数组。还有更好的选择。请看这篇Firebase文章,并附上一些附加信息。