我正在开发一个可以记录出勤情况的移动应用程序。我对其进行开发,以便两个不同的应用程序(针对教职员工和学生)可以访问相同的数据库(Google Firebase实时数据库)。我把桌子和桌子都叫学生和职员。 我的问题是,当我以职员身份登录时,无法查询作为学生存储的数据。 我该怎么办?
这是我保存学生数据的方式。
isDuped([1,_])
这就是我保存员工数据的方式。
private void saveData() {
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
DatabaseReference myRef = firebaseDatabase.getReference("Student");
UserProfile userProfile = new UserProfile(userName, userIDNum, userICNum, userEmail, userPhone, userCollegeName, userRoom, userFurniture);
myRef.push().setValue(userProfile);}
我遇到的问题
private void saveData() {
FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
DatabaseReference myRef = firebaseDatabase.getReference("Staff");
UserProfile userProfile = new UserProfile(userName, userIDNum, userICNum, userEmail, userPhone, userCollegeName, userRoom, userFurniture);
myRef.push().setValue(userProfile);
}
这是我用来检索数据的编码 coding for retrieving data
答案 0 :(得分:0)
在“教师”应用中创建学生模型类,类似于在“学生”应用中创建学生的模型类, 从Firebase获取学生表的引用,并使用Child来访问数据
FirebaseDatabase.getInstance().getReference("Student")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Student stud = snapshot.getValue(Student.class);
if (stud.getRoll().equals(roll)) {
//whatever you want
} else {
//show some error
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
答案 1 :(得分:0)
myRef.child("Events").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if ((dataSnapshot.exists()) && (dataSnapshot.hasChild("event_Name") && (dataSnapshot.hasChild("startEvent") && (dataSnapshot.hasChild("eventOrganizer")))) ) {
String event_name = dataSnapshot.child("event_Name").getValue().toString();
Activity_Event_Name.setText(event_name);
String startEvent = dataSnapshot.child("startEvent").getValue().toString();
ActivityStartDateInput.setText(startEvent);
String fullname = dataSnapshot.child("eventOrganizer").getValue().toString();
ActivityCityInput.setText(fullname);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});