gpt4 book ai didi

firebase - 单个整数作为 firebase 中的键(Firebase 数组行为)

转载 作者:行者123 更新时间:2023-12-03 00:09:45 26 4
gpt4 key购买 nike

如果我将数据插入到 firebase 中的 node/a/0 中。

结果将把a视为数组a[0]

同样,如果我在 node/a/1 中设置数据,第一个数组将变为 null

      "a" : [ null, {
"-J-22j_Mb59l0Ws0H9xc" : {
"name" : "chok wee ching"
}
} ]

但是如果node/a/2就可以了

      "a" : {
"2" : {
"-J-25xjEXUqcpsC-5LOE" : {
"name" : "chok wee ching"
}
}
}

我的猜测是,firebase 自动将单个 0 和 1 视为数组。我怎样才能防止这种情况发生?

最佳答案

Firebase 没有对数组的 native 支持。如果您存储一个数组,它实际上会存储为一个“对象”,并以整数作为键名称。

但是,为了帮助在 Firebase 中存储数组的用户,当您调用 .val() 或使用 REST api 从 Firebase 读取数据时,如果数据看起来像数组,Firebase 会将其渲染为数组。

特别是,如果所有键都是整数,并且对象中 0 到最大键之间超过一半的键具有非空值,则 Firebase 会将其渲染为数组。这是您遇到的启发式的后一部分。您的第二个示例仅设置了 2 的值,而不是 0 和 1,因此不到一半的键具有值,因此 Firebase 将其呈现为对象。

您目前无法更改或阻止此行为(尽管这是造成困惑的常见原因,因此我们将来可能会在此进行一些调整)。然而,一旦你理解了这种行为,处理它通常就很容易了。如果您需要进一步的帮助,也许您可​​以扩展您的问题来解释您需要完成什么以及这种行为如何阻止它。

关于firebase - 单个整数作为 firebase 中的键(Firebase 数组行为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17777112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com