Firebase에서 개발 중인 앱에서는 로그인 후 세 가지 유형의 사용자를 해당 활동으로 리디렉션해야 했습니다. 앱은 이미 다음 코드를 사용하여 학생과 교사라는 두 가지 사용자 유형을 성공적으로 리디렉션하고 있었습니다.
mAuthListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(FirebaseAuth firebaseAuth) { FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); if (mAuth.getCurrentUser() != null) { String uid = mAuth.getInstance().getCurrentUser().getUid(); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); uidRef = rootRef.child("STUDENTS").child(uid); ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { if (dataSnapshot.exists()) { startActivity(new Intent(MainActivity.this, student.class)); } else { startActivity(new Intent(MainActivity.this, teacher.class)); } } @Override public void onCancelled(DatabaseError databaseError) { } }; uidRef.addListenerForSingleValueEvent(valueEventListener); } else { Log.d("TAG", "firebaseUser is null"); } } };
그러나 세 번째 사용자 유형인 관리자(관리자)를 추가할 때가 되자 혼란이 발생했습니다. 그리고 이를 특정 활동으로 리디렉션합니다.
이 문제에 대한 해결책은 세 번째 사용자 유형을 포함하도록 데이터베이스 구조를 수정하고 사용자의 "유형" 속성을 확인하기 위한 리스너를 추가하는 것이었습니다. node.
새 데이터베이스 스키마는 다음과 같습니다.
Firebase-root | --- users | --- uidOne | | | --- name: "Ed" | | | --- type: 1 | --- uidTwo | | | --- name: "Tyff" | | | --- type: 2 | --- uidOne | | | --- name: "Admin" | | | --- type: 3
ValueEventListener는 "유형"을 확인하도록 수정되었습니다. " 값에 따라 사용자를 속성화하고 리디렉션합니다.
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid(); DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference uidRef = rootRef.child("users").child(uid); ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (dataSnapshot.child("Type").getValue(Long.class) == 1) { startActivity(new Intent(MainActivity.this, student.class)); } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 2) { startActivity(new Intent(MainActivity.this, teacher.class)); } else if (dataSnapshot.child("TYPE").getValue(Long.class) == 3) { startActivity(new Intent(MainActivity.this, admin.class)); } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { Log.d(TAG, databaseError.getMessage()); } }; uidRef.addListenerForSingleValueEvent(valueEventListener);
이러한 변경을 통해 앱은 성공적으로 로그인 후 세 가지 사용자 유형을 해당 활동으로 리디렉션합니다.
위 내용은 Firebase 로그인 후 여러 사용자 유형(학생, 교사 및 관리자)을 특정 활동으로 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!