0

SQL에서오고 Firebase를 처음으로 시도하고 있습니다. 이 쿼리는 Firebase에서 가능합니까?Firebase 가입, 그룹화, 집계 SQL에 해당하는

SELECT 
    name, 
    AVG(rating) as avgRating 
FROM restaurants 
JOIN reviews 
    ON restaurants.ID = reviews.restaurantsID 
GROUP BY restaurants.ID 
ORDER BY avgRating; 

그렇다면 Firebase for SQL에 대한 블로그, 튜토리얼 또는 고급 과정에 대한 링크를 제공 할 수 있습니까? (Firebase for Web 선호)

+0

Firebase와 같은 NoSQL 데이터베이스에 직접 SQL 쿼리를 매핑하면 문제가 발생합니다. [NoSQL 데이터 모델링] (https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)을 읽고 [Firebase for SQL developers] (https)를 읽은 후에 유스 케이스를 재평가하는 것이 좋습니다. : //kr.youtube.com/playlist? list = PLI-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s). –

답변

0

모든 NoSQL 스타일 데이터베이스의 주된 약점은 조인입니다. 이는 작동 방식에서 발생합니다. 쿼리는 JSON 저장소를 직접 읽는 것입니다. (속도와 확장 성도 제공합니다.)

Firebase 실시간 DB를 사용하는 경우 가장 좋은 방법은 denormalize your data이며 두 가지 쿼리를 수행하십시오. 즉,이 같은 것을 보일 것이다

firebase.db.ref("/path/to/ref").on("value", (snapshot) => { 
    if(snapshot.val()){ 
    firebase.db.ref(`/second/ref/${snapshot.val().joinValue}`).on("value", (snapshot2) => { 
     console.log(snapshot2.val()) // Do something 
    } 
    } 
}) 

최근, 중포 기지는 실시간 버전의 약점 중 일부를 해결하기 위해 구현되는 새로운 FireStore database을 발표했다. 그러나, 나는 조인 문제가 구체적으로 다루어지지 않는다고 생각합니다. (최종 해결책은 아마 나의 예와 비슷할 것입니다.)

마지막으로 나는 Firebase를 꽤 많이 사용하고 있으며 아마도 그들은 GraphQL에 영감을받은 해결책으로 일하고 있다고 생각합니다. 이것은 SQL 기반 DB를위한 완전한 인터페이스가 될 것입니다. 나는 그것이 다음 12 개월 이내에 떨어질 것으로 기대합니다.