java - 使用 Firebase 检查整个 JSON 文件中是否存在数字
问题描述
我将一个 CSV 文件作为 JSON 文件导入到我的 firebase 数据库中,该数据库包含车牌号列表和一些其他不相关的信息,我想做的是检查车号是否存在,如果存在,设置标记为真。
在我的代码中,我几乎陷入了函数的这个阶段:
number = 4932564 //example number
Boolean carExists = false;
dbref = FirebaseDatabase.getInstance().getReference("rechev-6c");
//here I want to scroll through all the childs and check of a the number exists
}
那是因为我不知道该选哪个孩子,我需要以某种方式遍历每个孩子到“rechev-6c”数据库,然后检查它的任何键是否包含我想要的车号,如果是,设置标志为真。
感谢您提供任何帮助。
解决方案
这可以通过查询来实现:
dbref = FirebaseDatabase.getInstance().getReference("rechev-6c");
String property = "MISPAR RECHEV|TAARICH||HAFAKAT TAG|SUG TAG"
Query query = dbref.orderByChild(property).equalTo("04932564")
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
System.out.println(snapshot.getKey()); // 99099, or similar
System.out.println(snapshot.child(property).getValue(String.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
}
需要注意的几点:
- Firebase 只能查询固定/已知路径上的值,因此仅当属性名称(“MISPAR ...”)可以硬编码时才有效,这似乎是您的情况。
- Firebase 只能匹配以某个值开头
0
的字符串,这就是为什么我在equalTo
. 没有过滤包含特定值的字符串的选项。
推荐阅读
- python - 如何将 unicode 写入 txt?Python
- c++ - 为什么 std::map 代码在未为其数据类型定义 operator < 时编译?
- c# - 具有在自定义渲染器中设置的可绑定属性的自定义按钮视图(控件)未在应用程序或设计器中显示
- ios - 为什么这个字符串在我的 Swift 代码中的 RegEx 语句匹配中作为 true 传递?
- arrays - C在存储在数组中的结构中打印char数组
- python - 为什么我会收到属性错误?我该如何解决?
- javascript - Javascript fetch() 函数在点击时不起作用
- arrays - 如何使用 MongoDB 中较大集合中的键子集检索文档?
- clingo - 简明地表示“当且仅当”
- javascript - 是否可以检测应用程序是否在用户的计算机上运行