2017-12-20 3 views
1

사용자에게 연결 제한을 초과 할 때까지 기다리라는 텍스트 또는 토스트를 표시하려고합니다.Firebase Realtime 데이터베이스 제한 (100 동시 연결)에 도달했는지 프로그래밍 방식으로 확인하는 방법은 무엇입니까?

Firebase Realtime 데이터베이스에 대한 최대 연결 허용 개수를 초과하는 것을 확인하는 방법은 무엇입니까? 101 번째 연결이 연결하려고 할 때 특정 반환 값이 있습니까?

+0

나는 모든 개발자가 값 비싼 서비스 등을 구입할 돈이 없다는 것을 알고있다. 그러나 엄지 손가락의 규칙으로 돈을 살 수있는 최고의 도구를 사용한다. 앱을 스토어에 업로드하면 개발자 계정에 최소 25 달러를 지출해야합니다. 그리고 Firebase Flame 계획도 마찬가지입니다. 그것은 여전히 ​​제한적입니다 (100k 연결, 100 아닙니다), 그래서 당신은 무엇이든을 초과하여 고민 할 필요 없다. 그리고 나쁜 UX 방식의 대화 상자를 표시하기 위해 해킹 코드를 작성할 필요가 없으므로 사용자에게 기다려야합니다. – JacksOnF1re

답변

1

중요한 질문은 concurrent connections 한도에 도달하면 어떻게 될까요? concurrent connections에 대해 말하면 number of writes per seconds을 의미합니다.

그 순간에 Firebase 데이터베이스는 디스크에 직접 기록 할 수없는 쓰기 횟수를 대기열에 넣기 시작합니다. 다른 말로하면 Firebase는 buffer of the pendings write operations을 기록합니다. 쓰기 볼륨이 내려 가면 버퍼로 캐싱되기 시작합니다.

귀하의 질문에 대한 대답은 아니오입니다. Firebase 실시간 데이터베이스가 한계에 도달했는지 여부를 프로그래밍 방식으로 알 수있는 방법은 없습니다. 리턴 값으로 최대 연결 수를 갖는 메소드가 없습니다. 그러나, 당신이 CompletionListener를 붙일 수있는 workaroung가 있지만. 쓰기 작업을 시작할 때와 완료 할 때 사이에 시간이 표시되면 goes up은 버퍼링 (대기)되었음을 나타냅니다. 이것은 100 동시 연결에 도달 한 때를 알 수있는 방법입니다.

+0

101 번째 사람이 연결하려고한다고 가정 해보십시오. 그런 다음 사람이 연결을 설정할 수있게됩니다. 나는 101 번째 사람이 메시지를 입력하고 send를 누를 수 있음을 의미합니다. 메시지는 장치에서 보내고 firebase 버퍼에 저장됩니다. 그 캐시 된 메시지는 누군가가 연결을 끊을 때까지 버퍼에 저장 될 것인가? 그런 다음 메시지는 이제 실시간 데이터베이스에 저장되고 모두에 도달 할 것인가 ?? –

+0

문제는 연결을 설정하는 것이 아닙니다. 사용자가 확실히 연결됩니다. 그리고 예, 사용자는 메시지를 입력하고 보내기를 누를 수 있으며 메시지는 대기열에서 직접 전송됩니다. 사용자가 연결을 끊으면 메시지는 캐시 된 데이터베이스에 쓰여지지만 Firebase 서버에서는 온라인과 관련이 없습니다. 그러나 초당 최대 쓰기 수에 도달하면 더 이상 Firebase 데이터베이스를 사용할 수 없음을 의미하지는 않습니다. 지연과 함께 데이터베이스를 사용할 수 있습니다. –

+0

도움이됩니다. 감사 –

관련 문제