Firestore의 피드 및 팔로우 시스템 구조 최적화
소셜 네트워크 앱의 피드 및 팔로우 시스템을 설계할 때 다음이 중요합니다. 성능 병목 현상을 방지하려면 확장성을 고려하세요. 이 문제를 해결하기 위해 Firestore에서 데이터베이스를 구성하는 방법은 다음과 같습니다.
초기 관계형 스키마
현재 Firebase 실시간 데이터베이스 스키마에는 다음이 포함됩니다.
Firestore 데이터베이스 구조
Firestore에서 이 구조를 최적화하기 위해 우리는 컬렉션을 활용하는 비정규화된 접근 방식을 제안합니다.
비정규화의 이점
데이터를 비정규화함으로써 비용이 많이 드는 조인의 필요성을 없애고 쿼리 성능과 확장성을 향상시킵니다.
사용자 팔로우 쿼리
다음 사용자 목록을 쿼리할 수 있습니다.
CollectionReference userFollowingRef = rootRef.collection("following/" + uid + "/userFollowing");
사용자 게시물 쿼리
사용자의 최신 게시물을 가져오려면 다음을 쿼리할 수 있습니다.
Query query = rootRef.collection("posts/" + uid + "/userPosts").orderBy("date", Query.Direction.DESCENDING).limit(3);
피드 검색 최적화
사용자 피드를 효율적으로 검색하려면 다음을 고려하세요.
이 개정된 구조는 초기의 확장성 문제를 해결합니다. 스키마를 사용하여 Firestore에서 대량의 팔로어와 게시물을 효율적으로 관리할 수 있습니다.
위 내용은 Firestore는 어떻게 피드를 최적화하고 확장성을 위해 시스템을 따를 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!