java - 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(),这也不起作用。
解决方案
您的结构使查找给定角色(教师/学生)的人员/电话号码变得容易。但是,它并不容易找到给定电话号码的角色。
为此,您通常需要添加一个允许反向查找的附加数据结构:
phoneNumbersRoles: {
"1122334455": "Teachers/ComputerScience",
"9988776655": "Teachers/ComputerScience",
"0000055555": "Teachers/Mechanical",
}
使用这种结构,您可以在两个方向上查找数据。
另见:
推荐阅读
- python - Python最快的组插值
- postgresql - PostgreSQL:有没有更好的方法来查询具有许多列但只需要按这些列之一分组的表?
- javascript - 通过参数传递具有类型断言的类 - Typescript
- sql-server - SQL Server 触发器计数更新前更新的列
- docker - 如何在多位置场景下配置 Prometheus?
- python - Maya python - 在同一窗口中创建控制滑块
- ibm-cloud - IBM Cloud - CF 配置远程服务器错误
- list - AIX:查找名称包含特定字符串的文件并将其添加到列表中
- spring-boot - SpringBoot @MockBean 和 @WebMvcTest 不起作用
- java - 如何传入图形g