我正在使用 Golang 和 Firego 连接到 Firebase。我正在尝试使用 Email: john@gmail.com
搜索管理员。以下是我的数据库结构
为此我尝试过:
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/