我试图通过子名称下划线蓝色下划线红色下划线红色,但我的代码返回产品作为dataSnapshot.getKey上的键,这里是代码: 的代码
Query reference=FirebaseDatabase.getInstance().getReference().child("products").orderByChild("name").equalTo("iphon");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String key=dataSnapshot.getKey();
Log.e(TAG,key);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
04-30 18:27:11.660 22742-22742 / com.example.zar.shopistant E / MainActivity:products
答案 0 :(得分:3)
对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
因此,要获取单个子节点的快照,需要循环结果:
Query reference=FirebaseDatabase.getInstance().getReference().child("products").orderByChild("name").equalTo("iphon");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
String key=childSnapshot.getKey();
Log.i(TAG,key);
}
}