gpt4 book ai didi

firebase - 如何从 firebase 获取多条记录?

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:04 26 4
gpt4 key购买 nike

我有一个 firebase 数据库,其中包含如下数据: enter image description here

我想根据特定条件提取多条记录。我已经想出如何使用以下方法基于 ID 提取单个记录:

ref := fbDB.NewRef("/Event/123")
event := data.EventData{}
if err := ref.Get(c, &event); err != nil {
// error handling stuff
}

这会加载 event 我期望的数据。当我尝试修改此代码以使用以下代码选择多条记录时:

type EventResults struct {
Events []data.EventData
}
...
ref := fbDB.NewRef("/Event")
res := EventResults{}
if err := ref.Child("candy").OrderByValue().StartAt(350).Get(c, &res); err != nil {
//error handling stuff
}

res.Events 始终是一个空数组(err 为 nil)。

谁能看出我做错了什么?

最佳答案

它是空的,因为在检索数据时需要遍历数据库并通过每个节点。

在你的情况下你有这个:

ref.Child("candy");

此处 ref 引用节点 Event 并且在 Event 下您有不同的 ID(123789),因此您需要在尝试访问节点 candy 之前访问这些节点。


如果你想检索 Event 下的 candy 列表,那么你应该在节点 Event 的直接子节点中迭代,然后您将能够访问节点 candy

例子:

f := firego.New("https://my-firebase-app.firebaseIO.com", nil)
var res map[string]interface{}

ref := fbDB.Ref("/Event")
if err := ref.OrderBy("candy").StartAt(3).Value(&res); err != nil {

}

您需要使用 OrderBy 查询才能根据 candy 的值检索结果。例如,在我的代码 OrderBy("candy").StartAt(3) 中,此查询将为您提供一个结果,其中 candy 的值以 3 开头。candy :300

查看文档:

https://godoc.org/gopkg.in/zabawaba99/firego.v1

关于firebase - 如何从 firebase 获取多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com