首页 > 解决方案 > Firebase:如何检查孩子是否存在于不同的路径上?

问题描述

在此处输入图像描述

我正在尝试检查“1122334455”(手机号码)是否是“教师”节点中的孩子。计算机科学和机械都是部门,并且都将手机号码作为他们的孩子。

我可以使用此检查特定路径中是​​否存在手机号码

reference = FirebaseDatabase.getInstance().getReference("Person/Teachers/Computer Science");
if(snapshot.hasChild(mobile_number))
{

}

但是我想要实现的是在不知道他们是老师还是学生,是否属于CS或机械的情况下,仅使用他们的手机号码来确定该人是否存在。但是这段代码不起作用。

reference = FirebaseDatabase.getInstance().getReference("Person/");
if(snapshot.hasChild(mobile_number))
{

}

还尝试了 snapshot.child(mobile_number).exists(),这也不起作用。

标签: javaandroidfirebasefirebase-realtime-database

解决方案


您的结构使查找给定角色(教师/学生)的人员/电话号码变得容易。但是,它并不容易找到给定电话号码的角色。

为此,您通常需要添加一个允许反向查找的附加数据结构:

phoneNumbersRoles: {
  "1122334455": "Teachers/ComputerScience",
  "9988776655": "Teachers/ComputerScience",
  "0000055555": "Teachers/Mechanical",
}

使用这种结构,您可以在两个方向上查找数据。

另见:


推荐阅读