我有一個iOS應用程序,就像音樂社交網絡一樣。 在應用中,用戶分享有關特定音樂「曲目」的「帖子」。 我想知道在Firebase中構建數據庫的最佳方式,因爲每個「發佈」對象都引用單個「跟蹤」對象。Firebase - 構建數據庫的正確方法
此外,當用戶提交新帖子時,我需要通過查詢藝術家+歌曲標題來檢查曲目是否已經存在 - 如果曲目不存在,請添加新曲目。如果曲目存在,請在「發佈」對象中引用「track_id」。
我有一個iOS應用程序,就像音樂社交網絡一樣。 在應用中,用戶分享有關特定音樂「曲目」的「帖子」。 我想知道在Firebase中構建數據庫的最佳方式,因爲每個「發佈」對象都引用單個「跟蹤」對象。Firebase - 構建數據庫的正確方法
此外,當用戶提交新帖子時,我需要通過查詢藝術家+歌曲標題來檢查曲目是否已經存在 - 如果曲目不存在,請添加新曲目。如果曲目存在,請在「發佈」對象中引用「track_id」。
這裏面臨的挑戰是在Firebase中執行'和'查詢,該查詢不存在。所以你有兩塊數據在一起,然後做這個查詢。這裏有一個結構
artists
artist_0: Pink Floyd
artist_1: Billy Thorpe
artist_2: Led Zeppelin
tracks
track_id_0: Stairway To Heaven
track_id_1: Children Of The Sun
track_id_2: Comfortably Numb
artists_tracks
artist_0_track_id_2: true
artist_1_track_id_1: true
artist_2_track_id_0: true
posts
post_id_0
artist_track: artist_1_track_id_1
post: Billy was one of the most creative musicians of modern times.
post_id_1
artist_track: artist_0_track_id_2
post: The Floyd is the best band evah.
通過這種結構,如果你知道藝術家和曲目名稱,你可以將它們連接起來,並做了簡單的查詢在.equalToValue(真)artists_tracks節點,看它是否存在。
帖子節點中的帖子與特定的藝術家和曲目相關聯。
在某些情況下,你可以粘上你的數據在一起,沒有額外的節點,因爲在名稱空間和文本的不同寬度的執行和搜索......這樣
stuff
artist_track: Billy_Thorpe_Children_Of_The_Sun
然而,將無法工作。這樣可以確保您在數據中包含足夠的數字,以處理許多歌曲和藝術家,因此長度保持一致。
artists_tracks
artist_00000_track_id_00002: true
現在你可以有50,000名藝術家和50,000首曲目。
在這種情況下,當您執行軌道搜索功能並搜索跟蹤軌道的用戶時,您會遇到一些麻煩。 所以一般來說,您需要在您的客戶端應用程序中完全加載至少一個表。 我希望這可以幫助你以後的麻煩。
感謝您的詳細解答! (和kickass軌道;)) – Gil