"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Firestore는 어떻게 피드를 최적화하고 소셜 네트워크의 확장성을 위해 시스템을 따를 수 있나요?

Firestore는 어떻게 피드를 최적화하고 소셜 네트워크의 확장성을 위해 시스템을 따를 수 있나요?

2024년 11월 23일에 게시됨
검색:514

How can Firestore optimize feed and follow systems for scalability in social networks?

Firestore의 피드 및 팔로우 시스템 최적화

실시간 데이터베이스의 확장성 문제

Firebase 실시간 데이터베이스를 사용하는 이전 소셜 네트워크 앱에서는 다음:

  • 팔로워가 많은 사용자의 경우에도 모든 팔로워의 타임라인에 게시물이 추가되었습니다.
  • 새로운 팔로워는 자신이 팔로우한 사용자가 이전에 게시한 콘텐츠를 모두 받았습니다.

최적화된 Firestore 구조

Firestore에서 이러한 문제를 해결하려면 다음 데이터베이스를 고려하세요. 구조:

  • 사용자, 팔로우, 게시물에 대한 3개의 최상위 컬렉션입니다.
  • 사용자에게는 이름 및 이메일과 같은 필드가 있는 문서가 있습니다.
  • 다음 컬렉션에는 다음이 포함됩니다. 팔로우하는 사용자의 UID에 대한 하위 컬렉션이 포함된 각 사용자에 대한 문서.
  • 게시물 컬렉션에는 게시물에 대한 하위 컬렉션과 함께 각 사용자에 대한 문서가 포함되어 있습니다. 게시물의 ID.

향상된 확장성

이 구조를 사용하면 팔로어와 게시물을 효율적으로 처리할 수 있습니다.

  • 팔로어 저장 하위 컬렉션에서는 데이터를 복사할 필요가 없습니다.
  • 게시물을 하위 컬렉션으로 분리하면 검색이 보장됩니다. 팔로어 수가 많아도 팔로우된 사용자의 최신 게시물은 여전히 ​​성능을 유지합니다.

팔로잉된 사용자 게시물 쿼리

사용자 피드의 경우 다음 쿼리를 사용할 수 있습니다.

Query query = rootRef.collection("posts/"   uid   "/userPosts")
    .orderBy("date", Query.Direction.DESCENDING).limit(3);

이 쿼리는 지정된 사용자(uid)에 대한 최신 게시물 3개를 검색하며 페이지를 매겨 연속 로드에 활용할 수 있습니다. .

대량 게시물 볼륨에 대한 최적화

대량 게시물 처리를 최적화하려면 게시물 저장을 고려하세요. 해당 사용자에 대한 별도의 문서 또는 하위 컬렉션의 사용자 피드에 표시되어야 합니다. 이렇게 하면 효율적인 검색이 보장되고 이전에 게시된 모든 콘텐츠를 새로운 팔로어가 받는 문제가 방지됩니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3