java - 使用 Firebase 中的键显示特定数据
问题描述
我是 android 开发和 firebase 的新手,所以这可能是一个简单的问题。
我想开发一个与 firebase 中的 grandChild 中的名称匹配的应用程序,然后获取它周围的键的数据,但问题是当我检索数据时,它会获取数据库中所有子节点的值。
这是我所做的代码
private void searchText() {
final String mSearch = searchBar.getText().toString();
//return REQUIRED if the searchBar is in filled
if (TextUtils.isEmpty(mSearch)) {
searchBar.setError(REQUIRED);
return;
}
ValueEventListener valueEventListener = mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()){
for (DataSnapshot grandChild : child.getChildren()) {
//check if mSearch is equal any grandchild in the firebase'
if(grandChild.getValue().toString().equals(mSearch)){
TextView mText = findViewById(R.id.searchResult);
String string = child.getValue().toString();
String string2 = string.replace("{","");
String string3 = string2.replace("}","");
String string4 = string3.replace(",","\n");
//retrieve the data from firebase and show in TextView
mText.setText(string4);
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mDatabase.addValueEventListener(valueEventListener);
}
结果是_
{ Message = "...",Priority = "..",name="...",time="..."}
但我想要的结果只是名称和优先级
{ 消息 = "..",name=".."}
有没有办法指定检索数据的路径?
解决方案
为什么不首先将 JSON 解析为一个对象,然后只使用所需的参数。对于解析,您可以使用 SimpleJSON 库。
推荐阅读
- javascript - Firestore DocumentReference 以字符串形式获取路径
- python - 提示用户猜数字功能
- c - 模拟命令行提示符的 C 程序
- sql - SQL 查询 - 每个唯一列名的最新行
- sharepoint - 在 Sharepoint 中将“指定您自己的值:”更改为“其他”
- java - java swing 存储图像异常 java.lang.AbstractMethodError
- azure-machine-learning-service - Webservice.deploy_from_image 失败并显示“AttributeError:'str' object has no attribute 'creation_state'”
- docker - Docker 容器中的 Julia v1.0.2 Pkg.activate(".") 问题
- ms-access - Microsoft Access 2018 - 使用表单添加新数据条目
- r - r 正则表达式用于复杂的变量拆分问题