所以我有一个简单的 firebase android 应用程序,我的目标是满足许多不同的用户。用户注册,并在创建时,他们的 Uid 存储在用户表中,以及其 Uid 下的 UserInformation 条目,其值为“UserType”和“IsCurrentlyTracking”。用户登录后,将被带到个人资料活动,他们可以在其中按下按钮继续通过应用程序。这是我的表结构:
按下继续后,将检索其 UserInformation 数据。根据该数据,他们被重定向到另一个活动。应用程序停止/崩溃,而不是执行上述操作。
这是重定向用户的代码/方法:
public void userRedirect(){
firebaseAuth = FirebaseAuth.getInstance();
user = firebaseAuth.getCurrentUser();
final FirebaseDatabase database = FirebaseDatabase.getInstance();
Query q = database.getReference("Users/" + user.getUid() + "/UserInformation");
q.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
UserInformation uI = dataSnapshot.getValue(UserInformation.class);
int userType = uI.getUserType();
boolean ICT = uI.getTrackingStatus();
if ((userType == 1) && (!ICT)) {
finish();
startActivity(new Intent(ProfileActivity.this, AllocationActivity.class));
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
databaseError.getMessage();
}
});
}
我之前已经能够检索数据,尽管信息没有存储在“用户”表中(仅在用户的 UiD 下),用户信息也没有从 UiD 下降。
对于一些额外的上下文,这是我的用户类:
public int UserType;
public boolean IsCurrentlyTracking;
public UserInformation(int userType, boolean IsCurrentlyTracking){
this.UserType = userType;
this.IsCurrentlyTracking = IsCurrentlyTracking;
}
public int getUserType()
{
return UserType;
}
public boolean getTrackingStatus()
{
return IsCurrentlyTracking;
}
关于我可能出错的地方有什么想法吗?先感谢您。