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

标签 firebase go firebase-realtime-database

我有一个 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/

相关文章:

java - Android Firebase 时间戳

android - Firebase动态链接,使用一次后清除

ios - 闭包无法隐式捕获变异的 self 参数

javascript - 来自 Firebase 的 2 个或多个 $scope 的数学函数,例如 sum、multiple 等

android - 无法在 Android 中设置 Firebase 数据库

go2go.playground - 预期类型,发现 'type'(还有 1 个错误)

go - 使用 GoLang 将参数传递给 wkhtmltopdf

go - Set-Cookie 在 Safari 中与本地主机一起工作但不与服务器一起工作

android - 任务 :react-native-firebase:compileReleaseJavaWithJavac FAILED

android - 如何在 Firebase 中注册用户名?