-
[Android][Stream Chat] QueryUsers 를 써보자부스트캠프/Stream Chat SDK 2022. 11. 16. 01:30
참조 : https://velog.io/@skydoves/android-chat-tutorial-stream-chat-sdk (Stream의 개발자분이신듯)
// Step 1 - 오프라인 메세지 로드 및 전송 등 오프라인 기능 초기화 lateinit var offlinePluginFactory: StreamOfflinePluginFactory offlinePluginFactory = StreamOfflinePluginFactory( config = Config(), appContext = applicationContext, ) // Step 2 - ChatClient 초기화 lateinit var chatClient: ChatClient chatClient = ChatClient.Builder("API_KEY", applicationContext) .withPlugin(offlinePluginFactory) .logLevel(ChatLogLevel.ALL) .build()
기본적으로 위와 같은 세팅을 전제로 한다.
(lateinit 키워드는 무시, 나의 코드에서는 원래 다른 곳에 위치하는데 어떻게 작성되는지 보여주기 위해서 모아놓은것이다.)
QueryingUsers 의 공식 문서 : https://getstream.io/chat/docs/android/query_users/?language=kotlin
기본적으로 ChatClient.connectUser 코드를 실행하고 요청해야한다.
그렇지 않으면 다음과 같은 에러를 뿜는다.
//에러 확인 코드 Log.d("StreamChatlog", "queryUsers fail: ${it.error().cause} message : ${it.error().message}")
queryUsers fail: null message : Status code: -1, with stream code: 1007, description: No defined token.
Check if client.setUser was called and finished
아마도 ChatClient 자체로는 요청이 불가능 한듯...
ChatClient.connectUser 를 실행후에 쿼리를 요청하면 다음과 같이 데이터를 잘 가져와준다.
chatClient.queryUsers( QueryUsersRequest( filter = Filters.autocomplete("name", "wjdcjfwn"), offset = 0, limit = 30 ) ).enqueue { if (it.isSuccess) { binding.tvResponse.text = it.data().toString() Log.d("StreamChatlog", "queryUsers sucess: ") } else { Log.d("StreamChatlog", "queryUsers fail: ${it.error().cause} message : ${it.error().message}") } }
'부스트캠프 > Stream Chat SDK' 카테고리의 다른 글
[Android][Stream Chat] Querying 에서 사용하는 MongoDB 연산자(작성중) (0) 2022.11.16 [Android][Stream Chat] Stream Chat 글을 쓰게 된 이유 (0) 2022.11.16