go - 如何使用 Golang 在 Firebase 中搜索特定值?

标签 go firebase

我正在使用 Golang 和 Firego 连接到 Firebase。我正在尝试使用 Email: john@gmail.com 搜索管理员。以下是我的数据库结构

My Firebase Database Structure

为此我尝试过:

  dB.Child("CompanyAdmins").Child("Info").OrderBy("Email").EqualTo("john@gmail.com").Value(&result)

但它并没有产生预期的结果。我该怎么做?

最佳答案

虽然@dev.bmax 正确识别了问题,但解决方案更简单。您可以指定要订购的属性的路径:

  dB.Child("CompanyAdmins")
    .OrderBy("Info/Email")
    .EqualTo("john@gmail.com")
    .Value(&result)

更新 (2017-02-10):

我刚刚试过的完整代码:

f := firego.New("https://stackoverflow.firebaseio.com", nil)

var result map[string]interface{}

if err := f.Child("42134844/CompanyAdmins").OrderBy("Info/Email").EqualTo("john@gmail.com").Value(&result); err != nil {
    log.Fatal(err)
}

fmt.Printf("%s\n", result)

这打印:

map[-K111111:map[Info:map[Email:john@gmail.com]]]

这是我放置数据的确切位置。

更新 20170213:

这是我定义的索引:

  "CompanyAdmins": {
    ".indexOn": "Info/Email"
  }

如果这对您不起作用,请提供我可以测试的类似的完整代码段。

关于go - 如何使用 Golang 在 Firebase 中搜索特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42134844/

相关文章:

json - 如何将这个嵌套的 JSON 解码为 go 对象?

swift - ClosedRange Firebase Swift 读写

ios - 使用 Swift 将 Facebook Login 与 Firebase 集成仅加载白屏

json - Golang json解码返回空

go - 互斥锁用对了吗?

go - 如何在 Go 中重构模块名称?

mysql - 限制最大准备语句数

ios - Firebase 消息不在 iOS 上 - FIRMessaging 收到数据消息,但 FIRMessagingDelegate 的消息 :didReceiveMessage: not implemented

android - 无法解析 : com. google.firebase :firebase-firestore:11. 4.2

node.js - Firebase 通过 ref 限制子级返回