2017-08-26 52 views
0

我有一個我參與的遺留Firebase項目。在這裏面我有資源songs以下規則:Firebase indexOn適用於某些不符合規則的內容JSON

"songs": { 
     ".indexOn": ["artist_timestamp"] 
}, 

,讓我做的事情一樣curl htttp://my-fire-base-ref/songs.json?orderBy="artist_timestamp"

不過,我也可以做orderBy="$priority"這是我們添加到所有song對象的屬性。儘管json定義中沒有明確指出它,但它仍然有效。這是一個祕密允許的財產嗎?

回答

1

每個節點的.priority都是隱式索引的,因此您無需爲其定義索引。

爲什麼你使用優先順序?雖然它們仍然可以工作,但使用命名屬性可以讓您使用更易讀的代碼來完成相同的操作見What does priority mean in Firebase?

1

按照documentation for indexing data

火力地堡提供訂購和查詢數據的強大工具。 具體而言,Firebase允許您使用任何常用子密鑰對使用節點的集合 進行即席查詢。隨着您的應用程序的增長,此查詢的性能下降。但是,如果您告知Firebase 有關您要查詢的密鑰,Firebase會將這些密鑰索引在 服務器上,從而提高查詢性能。

這意味着你可以在任何時間任何鍵,但不將其指定爲索引順序,但不一鍵指定一個特定的指數,表現可能是大型數據集的非常糟糕。

相關問題