我的主节点员工有 3 个值:Mob。号、UserPIN 和 empID。我需要检查我的一项活动,即输入的 UserPIN 是否存在于 thos 节点下。我无法使用以下方法执行此操作:
if(datasnapshot.child(enteredUserPIN).exists(){
}
而且我在检查 Mob 时也无法更改我的节点布局。不。以及在另一项活动中。另外我不能直接给出直到暴徒的路径。不。请指导。
员工节点:
编辑
我的代码:
private void mpinexists(){
Log.d("abcd","mpinexists() reached");
checkmPINRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds:dataSnapshot.getChildren()){
if(ds.child(enteredmPIN).exists()){
Toast.makeText(getActivity(),"mPIN already exists",Toast.LENGTH_SHORT).show();
Log.d("abcd","mpin already exists");
}
else{
Log.d("abcd","mpin doesn't exists");
Toast.makeText(getActivity(),"mPIN doesn't exists",Toast.LENGTH_SHORT).show();
}
}
}
我的日志:
04-25 21:53:28.889 10147-10147/com.example.abcd.efg D/abcd: mpinexists() reached
04-25 21:53:31.471 10147-10147/com.example.abcd.efg D/abcd: mpin already exists
04-25 21:53:31.472 10147-10147/com.example.abcd.efg D/abcd: mpin doesn't exists
为了解决这个问题,您需要像这样在对象上使用Query
andexists()
方法DataSnapshot
:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef
.child("Employees")
.child(mobileNumber) //Could be: 765432189
.child(userPin) //Could be: 123457
.orderBychild("empid")
.equalsTo(enteredUserPIN);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()) {
//Do something
} else {
//Do something else
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
query.addListenerForSingleValueEvent(valueEventListener);
根据您的编辑,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference employeesRef = rootRef.child("Employees");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
if(ds.child(enteredUserPIN).exists()) {
//Do something
} else {
//Do something else
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
employeesRef.addListenerForSingleValueEvent(valueEventListener);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句