DataSnapshot.getValue() 未记录的奇怪行为

问题描述 投票:0回答:1

这是怎么回事?

assertEquals(mapOf("161" to "a", "163" to "b"), Firebase.database.getReference("case").get().await().value)
assertEquals(mapOf("1" to "hello", "3" to "hi"), Firebase.database.getReference("case2").get().await().value)

java.lang.AssertionError:预期:<{1=hello, 3=hi}>但是是:<[null, hello, null, hi]>

database contents

firebase kotlin firebase-realtime-database
1个回答
0
投票

当 Firebase SDK 遇到具有彼此接近的低值数字键的子属性时,它会将这些值转换为数组。由于缺少一些连续的键,这些键最终会成为数组中的

null
值。

为了防止这种情况,我通常为此类键使用短字母数字前缀。比如

"key_1"
"key_3"
等等

另请参阅:最佳实践:Firebase 中的数组

© www.soinside.com 2019 - 2024. All rights reserved.