如何在 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() 方法循环遍历结果,以便获得结果。