我有以下结构

root
    -sections
        -section1
            -student1
                -GPA
                -lastname
            -student2
                -GPA
                -lastname
        -section2
            -student1
                -GPA
                -lastname

我需要得到用户想要的学生的平均成绩。
我正在做:
String student = student.getText().toString(); //Student1/Student2 entered
String section = section.getText().toString();
    //This is Section1, Student1, say (obtained from EditText)...

那么我正在做
myref = FirebaseDatabase.getInstance().getReference().child("sections");
myref1 = myref.child(section).child(student).child("GPA");
myref1.addValueEventListener(new ValueEventListener() {
  public void onDataChange(DataSnapshot dataSnapshot) {
    String gpa = dataSnapshot.getValue().toString();
  }
  public void onCancelled(DatabaseError databaseError) {}
});

结果我得到了0.0。
我哪里做错了?

最佳答案

通常用户在读写数据库之前需要进行身份验证。您是在控制台中禁用了规则,还是有用户登录了?
您可以在这张图片中看到“规则”选项卡:https://www.novoda.com/blog/content/images/2016/06/Screenshot_20160621_174302.png
编辑
代码看起来很好,可能是“部分”和“学生”键有问题。您可以使用硬编码字符串来测试它。

关于java - 让 child 离开火力基地?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45536960/

10-11 00:29