我具有以下Firebase数据库结构。因此,我需要针对d_avtr, d_nme,v_No,v_nme,v_tpe
分别提取key is equal to specific mobile no
值以分别保存在变量中
我已经尝试过
String Mobileno=localSharedPreferences.getSharedPreferences(Constants.PhoneNumber);
mDatabase= FirebaseDatabase.getInstance().getReference().child("Driver");
if(mDatabase.getKey().startsWith(Mobileno)) {
String driver_name = mDatabase.child("d_nme").toString();
String driver_avator = mDatabase.child("d_avtr").toString();
String vehicle_no = mDatabase.child("v_No").toString();
String vehicle_name = mDatabase.child("v_nme").toString();
String vehicle_type = mDatabase.child("v_tpe").toString();
String firstname = driver_name;
String lastname = vehicle_name;
String avatorurl = driver_avator;
String ratings = vehicle_no;
}
但是它不起作用。我该如何实现
答案 0 :(得分:2)
要检索值,您需要执行以下操作:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Driver");
reference.orderByKey().equalTo("1815000000").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String driver_name = datas.child("d_nme").getValue(String.class);
String driver_avator = datas.child("d_avtr").getValue(String.class);
String vehicle_no = datas.child("v_No").getValue(String.class);
String vehicle_name = datas.child("v_nme").getValue(String.class);
String vehicle_type = datas.child("v_tpe").getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
首先添加对节点Driver
的引用,然后使用查询orderByKey()
获取该键下的值,附加一个侦听器,然后在key
内进行迭代并检索这些值。 / p>