我是firebase的新手 - 我试图通过id获取数据。
我不知道为什么,由于某种原因,它会让我失效。
代码分为两类。
第一个是firebaseHandler - 它将请求发送到firebase服务器,第二个是调用firebaseHandler的片段。
这是我的代码:
//FirebaseHandler
interface IGetStudentCallback{
void onComplete(Student student);
void onCancel();
}
public void getStudent(String stId,final IGetStudentCallback callback){
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference(STUDENTS);
myRef.child(stId).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Student student = dataSnapshot.getValue(Student.class);
callback.onComplete(student);
}
@Override
public void onCancelled(DatabaseError databaseError) {
callback.onCancel();
}
});
}
// Fragment
Model.instance.getStudent(getArguments().getString("STUDENT_ID"), new Model.IGetStudentCallback() {
@Override
public void onComplete(Student student) {
currStudnet = student;
}
@Override
public void onCancel() {
}
});
当我进入调试模式时,我看到" OnDataChange"不会跑。