为了账号安全,请及时绑定邮箱和手机立即绑定

从 Firestore 中提取 Map 对象,获取随机垃圾

从 Firestore 中提取 Map 对象,获取随机垃圾

Go
慕田峪9158850 2022-07-11 15:39:22
我正在使用 Go 尝试从 Firestore 中提取一些文档,但遇到了很大的障碍:无论我多么努力,我都无法从查询本身中提取数据。当我打印doc.Data()或无论它是什么时,它都可以正常工作:map[Ext: ID:107677035991703552 Kind:link Start:0.0 Stop:8.0 URL:ONHPHmNV0m4]我愿意:iter := client.Collection("intro-requests").Documents(ctx)for {    doc, err := iter.Next()    if err == iterator.Done {        break    }    var temp Request    doc.DataTo(&temp)    fmt.Println(temp)    requests = append(requests, temp)    for _, request := range requests {        fmt.Println(doc.Data())        createVote(s, request)    }    fmt.Println(doc.Data())}根据谷歌示例,但打印temp哪个,我得到这个:{ link 0 0  }但有时也这样:{  0 0  }有时是这样的:{ link 0 0 ONHPHmNV0m4 }是什么赋予了?我什至无法理解这里发生了什么。我也找不到任何其他有效的例子,因为谷歌的所有例子都只是打印地图,它在 100% 的时间内都有效。几乎感觉地图正在变成一个字节数组或其他东西,而程序只是试图从中挽救一些数字。这是我的课:type Request struct {    ID    string  `json:"ID"`    Kind  string  `json:"Kind"`    Start float64 `json:"Start"`    Stop  float64 `json:"Stop"`    URL   string  `json:"URL"`    Ext   string  `json:"Ext"`}我试过使用第三方反序列化包,但没有任何改变......有什么线索吗?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

事实证明 Go 不能反序列化Float64, 只有NilBool,Int64String. 奇怪的是,类型错误之类的东西会导致这种行为。

我把我float64的s换成了strings,然后就用了strconv.ParseFloat()。问题解决了


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信