javascript - 보내기 - fcm 전체 푸시




Firebase에서 채팅 채널을 관리하는 가장 좋은 방법 (2)

js-sha256 모듈로 해싱하면 Frank van Puffelen과 Eduard의 지시에 따라 일했습니다.

import SHA256 from 'crypto-js/sha256'
let agentId = 312
let userId = 567
let chatHash = SHA256('agent:' + agentId + '_user:' + userId)

메인 페이지에는 사용자 목록이 있으며 채널을 선택하여 열어서 그 중 하나와 채팅하고 싶습니다.

ID를 사용하는 것이 가장 좋은 방법인지 생각하고 USERID1-USERID2와 같은 채널의 액세스를 제어합니다.

그러나 물론 사용자 2도 동일한 채널을 열 수 있으므로 더 쉽게 제어 할 수있는 것을 찾고 싶습니다.

도움이 필요하면 firebase url / array를 사용하여 자바 스크립트로 예제를 제공하십시오.

감사합니다!


이러한 1 : 1 대화방을 처리하는 일반적인 방법은 사용자 ID를 기반으로 방 URL을 생성하는 것입니다. 이미 언급했듯이 이것의 문제점은 두 사용자 모두 대화를 시작할 수 있으며 두 경우 모두 같은 방에 있어야한다는 것입니다.

복합 키에서 사용자 ID를 사전 식으로 정렬하여이 문제를 해결할 수 있습니다. 예를 들어 아이디 대신 사용자 이름을 사용하는 경우 :

var user1 = "Frank";
var user2 = "Eusthace";

var roomName = 'chat_'+(user1<user2 ? user1+'_'+user2 : user2+'_'+user1);

console.log(user1+', '+user2+' => '+ roomName);
            
user1 = "Eusthace";
user2 = "Frank";

var roomName = 'chat_'+(user1<user2 ? user1+'_'+user2 : user2+'_'+user1);

console.log(user1+', '+user2+' => '+ roomName);
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

일반적인 후속 질문은 현재 사용자의 대화방 목록을 표시하는 방법입니다. 위의 코드는이를 해결하지 않습니다. NoSQL 데이터베이스에서와 마찬가지로이 사용 사례를 허용하려면 데이터 모델을 보강해야합니다. 현재 사용자의 대화방 목록을 표시하려면이를 허용하도록 데이터를 모델링해야합니다. 가장 쉬운 방법은 각 사용자의 대화방 목록을 데이터 모델에 추가하는 것입니다.

"userChatrooms" : {
  "Frank" : {
    "Eusthace_Frank": true
  },
  "Eusthace" : {
    "Eusthace_Frank": true
  }
}




chat