如何在 Firebase 中获取价值
How to get value in Firebase
我的数据库:
enter image description here
我得到了“代码”。我尝试获取“ClassID”(例如:代码=1235,我想要一个字符串 ClassID=“12”):
这是我的代码:
private void checkCode(){
String userCode = inputCode.getText().toString().trim();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Assignment");
Query checkCode = reference.orderByChild("Code").equalTo(userCode);
checkCode.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
String classID; // I think here
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
怎么做?
如果要在数据库中搜索所有“代码”属性 设置为“1235”的对象,然后获取“classID”的值,请使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference assignmentRef = rootRef.child("Assignment");
Query codeQuery = assignmentRef.orderByChild("Code").equalTo("1235");
codeQuery.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
for (DataSnapshot ds : task.getResult().getChildren()) {
String classID = ds.child("classID").getValue(String.class);
Log.d("TAG", "ClassID: " + classID);
}
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
logcat 中的结果将是:
ClassID: 12
您要查找的确切值。请记住,每次查询数据库时,都需要使用 .getChildren()
方法循环遍历结果,以便获得结果。
我的数据库:
enter image description here
我得到了“代码”。我尝试获取“ClassID”(例如:代码=1235,我想要一个字符串 ClassID=“12”):
这是我的代码:
private void checkCode(){
String userCode = inputCode.getText().toString().trim();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Assignment");
Query checkCode = reference.orderByChild("Code").equalTo(userCode);
checkCode.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(snapshot.exists()){
String classID; // I think here
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
怎么做?
如果要在数据库中搜索所有“代码”属性 设置为“1235”的对象,然后获取“classID”的值,请使用以下代码行:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference assignmentRef = rootRef.child("Assignment");
Query codeQuery = assignmentRef.orderByChild("Code").equalTo("1235");
codeQuery.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
for (DataSnapshot ds : task.getResult().getChildren()) {
String classID = ds.child("classID").getValue(String.class);
Log.d("TAG", "ClassID: " + classID);
}
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
logcat 中的结果将是:
ClassID: 12
您要查找的确切值。请记住,每次查询数据库时,都需要使用 .getChildren()
方法循环遍历结果,以便获得结果。