我有以下结构
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/