그래서 나는 여러 다른 사용자를 수용 할 수있는 간단한 firebase android 응용 프로그램을 보유하고 있습니다. 사용자가 등록하고 작성시 해당 Uid는 'UserType'및 'IsCurrentlyTracking'값을 갖는 Uid 아래에 UserInformation 항목과 함께 사용자 테이블에 저장됩니다. 사용자가 로그인하면 프로필 활동으로 이동하여 버튼을 눌러 앱을 계속 진행할 수 있습니다. 내 테이블 구조는 다음과 같습니다. Android - Firebase; 로그인하면 데이터를 검색하고 (계층화 된) 해당 데이터를 기반으로 해당 사용자를 리디렉션합니다.
계속을 누르면 UserInformation 데이터가 검색됩니다. 해당 데이터를 기반으로 다른 활동으로 리디렉션됩니다. 앞에서 설명한 작업을 수행하는 대신 응용 프로그램이 중지되거나 중단됩니다. 정보가 저장되지 않았더라도 (단지 사용자의 UID 아래)는 '사용자'테이블에, 내가 전에 데이터를 검색 할 수있게되었습니다
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();
}
});
}
: 여기
는 사용자를 리디렉션 코드/방법 UserInformation은 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;
}
내가 잘못 갈 수있는 위치에 어떤 아이디어가? 미리 감사드립니다.
답변 해 주셔서 감사합니다. 나는 구조 조정을하고 내가 어떻게 시작하는지 보게 될 것이다. 또한 데이터베이스 규칙에 대한 액세스 강화에 감사드립니다. –