考虑使用其键为数字的子项的ref(以便使用orderByKey
“具有可以解析为32位整数的键的子项首先按升序排序”)
这样做的:
ref.orderByKey().startAt(5)
我收到以下错误:
按键排序时,传递给startAt(),endAt()或equalTo()的参数必须是字符串
在startAt
的文档中,我看到了:
与orderByKey()结合使用时,该值必须是字符串。
我可以用ref.orderByKey().startAt("5")
替换它吗?那仍然会使用数字而不是字典顺序运行startAt
吗?
答案 0 :(得分:3)
所有Firebase密钥都是字符串。如果使用带数字键的隐式数组强制,则应强烈考虑切换到位置作为子属性。所以不是:
0: {foo: 'bar'}
可是:
-Kpushidgoeshere: {position: 0, foo: 'bar'}
然后你会orderByChild('position').startAt(5)
来实现按位置排序的理想结果。数字键字符串效率低,通常难以在Firebase中使用。
答案 1 :(得分:1)
在firepad代码中,我找到了将数字转换成字典字符串的方法,以便它们可以安全地用作键:
pandas