这是怎么回事?
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]>
当 Firebase SDK 遇到具有彼此接近的低值数字键的子属性时,它会将这些值转换为数组。由于缺少一些连续的键,这些键最终会成为数组中的
null
值。
为了防止这种情况,我通常为此类键使用短字母数字前缀。比如
"key_1"
、"key_3"
等等
另请参阅:最佳实践:Firebase 中的数组。