【发布时间】:2019-07-11 05:27:58
【问题描述】:
我正在开发一个带有 firebase 的 android 联系人应用程序,我想从我的数据库中与指定电子邮件匹配的用户读取值(这里:用户的个人资料)。
我尝试设计如下答案所示的查询:https://stackoverflow.com/a/39025129/8739722 但问题是我不知道如何将其应用于我的数据库结构,因为我的用户结构中有另一个孩子(配置文件) .
我的节点如下所示:
我的规则如下所示:
{
"rules": {
"users": {
"$uid": {
"profile": {
".read": "auth.uid != null",
".write": "auth.uid == $uid",
},
//...
},
}
我尝试这样查询:
String email = "email_address_1";
Query q_1 = ref.child("users").child("profile").orderByChild("email").equalTo(email);
...导致“权限被拒绝”错误。
我也考虑过以下查询,但它们的语法无效或尝试执行多个 orderByChild 调用,这是不允许的:
String email = "email_address_1";
Query q_2 = ref.child("users").orderByChild("profile").child("email").equalTo(email);
Query q_3 = ref.child("users").orderByChild("profile").orderByChild("email").equalTo(email);
如何通过匹配的电子邮件获取用户的个人资料信息?
【问题讨论】:
-
您可以添加数据库节点的图像吗?
-
是的,我添加了节点的图像。
标签: android firebase firebase-realtime-database nosql