레이아웃 코드는 제외한다.

위치는 미국이 기본값으로 되어있고, 한국은 없으니 그대로 설정하자!

보안 규칙은 테스트를 위해 만들것이기에 아래와 같이 설정하자!

정상적으로 만들어졌다!!

dependencies {
// ...
implementation("com.google.firebase:firebase-database")
}

저장할 사용자 id, email, name을 만들어 클래스로 만들자!!
// 유저 정보 저장 클래스
public class User implements Serializable {
private String uid;
private String name;
private String email;
public User() {
}
public User(String uid, String name, String email) {
this.uid = uid;
this.name = name;
this.email = email;
}
//....
}
RecyclerView recyclerView;
UserAdapter adapter;
ArrayList<User> userArrayList = new ArrayList<>();
// 실시간 데이터베이스의 User/users의 경로에 접근
FirebaseDatabase.getInstance()
.getReference("User").child("users")
.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
progressBar.setVisibility(View.GONE);
for(DataSnapshot data : snapshot.getChildren()){
// 모든 유저를 반복문 돌리면서, User객체로 변환
User user = data.getValue(User.class);
// 이름과 이메일에 포함되는 문자열이 없다면 다음 객체로 넘어간다.
if(!user.getName().contains(search) && !user.getEmail().contains(search)){
continue;
}
// 검색된 id 중 접속된 자신의 id와 일치하지 않는 경우에만 출력한다.
if(!user.getUid().equals(FirebaseAuth.getInstance().getCurrentUser().getUid())){
userArrayList.add(user);
adapter.notifyDataSetChanged();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
