我尝试使用Golang和Firego从Firebase获取时间戳排序元素列表。
文档建议:
var v map[string]interface{}
if err := f.StartAt("a").EndAt("c").LimitToFirst(8).OrderBy("field").Value(&v); err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", v)
我必须遗漏一些完全明显的东西,但是v
是不是无序的?当我遍历地图(for key, val := range v
)时,由于访问顺序为undefined,因此这些值与在Firebase调用的响应中发送的顺序不一致
我错过了什么?感谢
答案 0 :(得分:1)
结果地图将是无序的,因为它是地图,但原始结果(限于前8位)将在限制之前订购,因此订单可能非常重要。
我同意地图对于这类结果来说是一个糟糕的类型,他们可能正在使用它,因为结果以json的形式返回(尽管确实有一个订单,不像go的地图)。他们应该返回一系列结果以保持秩序。