是否可以通过Firebase中的单个查询请求多个相同级别的深度节点

时间:2016-12-22 20:19:22

标签: database firebase firebase-realtime-database

考虑以下数据库结构。我可以在一个查询中请求所有电影(movie1,movie2,.. etc)吗?如果是这样,怎么样?

"by_genre"
      "comedy"
          "by_lead"
              "Jack Nicholson"
                  "movie1"
              "Jim Carrey"
                  "movie3"
      "Horror"
          "by_lead"
              "Jack Nicholson"
                  "movie2"

1 个答案:

答案 0 :(得分:2)

问题的答案是否定的,如果没有读取所有的by_genre子节点并迭代它们,就无法查询所有电影。

但是...

更改结构将是一个选项

all_movies
   movie_id_0
     title: "The Shining"
     year: "1980"
     genre: "Horror"
     lead: "Jack Nicholson"
   movie_id_1
     title: "One Flew Over the Cuckoo's Nest"
     year: "1975"
     genre: "Comedy"
     lead: "Jack Nicholson"
   movei_id_2
     title: "Liar Liar"
     year: "1997"
     genre: "Comedy"
     lead: "Jim Carrey"

这种结构非常灵活,因为您可以按年份,流派或主角查询所有电影,或只查看满足问题的所有电影。

您可以通过添加其他节点(例如

)来获得对数据的其他访问权限
genre
  comedy
   movie_id_1: true
   movie_id_2: true
  horror
   movie_id_0: true

可能还有其他要求,如果有,我们可以更新答案。