2017-10-13 1 views
0

Firebase 채팅 앱을 개발 중입니다.Firebase 채팅 앱에서 친구를 관리하는 방법 - Android

나는 Firebase 이메일/비밀번호 인증을 구현했습니다. 따라서 사용자가 성공적으로 가입 할 때, 모든 가입/등록시 앱이 uid 노드 아래의 Firebase 데이터베이스에있는 이름, 전자 메일 등과 같은 사용자 세부 정보를 저장하는 코드를 가지고 있습니다.

는 다음, 이메일 ID로 UID는 중포 기지 데이터베이스에 존재하는 경우 이메일 ID, 를 사용하여 친구에 대한 사용자 검색이 함수가 true를 반환

다음

, 응용 프로그램, 즉 이메일 ID를 추가

<FirebaseApp> 
    <users> 
     ....users details... 

    <friends> 
     <userid> 
      <unique pushed id> : searched email // here the friend's email id is added 

에서 새로운 친구, 를 추가 한 후 나는 친구 목록을 표시하려면 recyclerview을 사용하고 있습니다. 친구가 현재 노드의 모든 노드를 검색합니다. >> 현재 사용자의 uid >>

데이터베이스 구조에 나와있는 것처럼 친구 데이터베이스에 uid 만 저장했습니다.

첫 단계에서 사용자는 친구의 이메일 ID 만 갖습니다. List friendsList에서 말하십시오.

그런 다음 나는이 friendsList을 사용하여 프로필 사진, 이름, 연락처 등 사용자의 노드 아래에 저장된 친구의 다른 모든 세부 정보를 검색합니다.

하지만 모든 루프의 다른 세부 정보를 검색 한 다음 배열 목록에 저장 한 다음 해당 arrayList를 어댑터로 가져간 다음 recyclerview에 표시합니다. 매우 시간이 많이 걸리는 과정입니다.

다른 기능도있을 수 있습니다. Base64 이미지를 비트 맵 등으로 변환하는 것과 같습니다.

활동이 시작될 때마다 위의 모든 단계를 수행하면 오랜 시간이 걸립니다.

다른 사람이 다른 방법으로, 친구 노드 아래에서 다른 사람의 세부 정보를 저장할 수 있습니다. 새 친구가 데이터베이스에 추가 된 시점에서 이름, 연락처 등.

그러나 또 다른 질문이 생깁니다. 예, 친구의 다른 세부 정보도 저장할 수 있습니다 ... 친구가 프로필 사진을 업데이트하면 연락 하시겠습니까?

제 경우에는이 절차가 적합하지 않습니다.

Firebase 앱에서 친구 목록과 같은 whatsapp를 만들려면 어떻게해야합니까? 모든 사용자의 친구 목록은 항상 친구 세부 정보로 업데이트됩니다. 또한 긴 과정을 거치지 않습니다.

답변

2

가장 좋은 방법은 친구 노드에 필요한 세부 정보를 모두 저장하는 것입니다.

Opposite_Friends 태그를 각 사용자에게 저장하면 친구 목록 사용자가있는 모든 uids을 추가하기 만하면 사용자가 세부 정보를 업데이트 할 때마다 모든 사용자 친구 노드에서도 업데이트 할 수 있습니다.

+0

당신이 문제를 푸는데 도움이된다면 –

+0

을 알려주고 upvote를 부탁드립니다. 문제가 해결 되었다면 마크는 답을 표시하여 질문을 닫을 수 있습니다. 감사 – Anmol

관련 문제