2016-12-30 194 views
1

我建立與火力的應用,得到了一個查詢,因此它帶來的這個論壇。數據按以下模式組織:火力地堡表索引

Favourite 
    --> Email Provider 
     --> email Id 
      - key (e.g. -K_EL-PS-1FJ-Dz2kqV7) 
      -- attr1 
      -- attr2 
      -- attr3 
      -- attr4 

現在每個用戶的電子郵件提供商和電子郵件ID更改。每個組合可以有多個記錄(收藏夾)。現在我想獲取電子郵件提供商和電子郵件ID組合的所有記錄,其中attr2 =「abc」。同樣,我想在attr3 =「cde」時得到相同組合的所有記錄。我能得到他的工作,但是得到一個警告(火力警告:使用未指定的指數考慮加入「.indexOn」)。我可以理解並欣賞警告。問題是,如何在這種情況下指定索引。我知道第一級元素(「收藏」),而不是第二和第三級元素。 感謝任何幫助。

親切的問候

回答

4

當你需要一個索引添加到動態路徑,則表明,與所謂的通配符/美元變量動態路徑:

{ 
    "rules": { 
    "Favourite": { 
     "$providerId": { 
     "$emailId": { 
      ".indexOn": ["attr1", "attr2", "attr3", "attr4"] 
     } 
     } 
    } 
    } 
} 

這些$變量在解釋關於Using $ Variables to Capture Path Segments的文檔。

+0

感謝弗蘭克。我會試試這個。還有一個問題,如果我可以詢問firebase是否支持And或Or子句,例如attr1 =「abcd」或attr2 =「def」。感謝所有幫助。 – user1687711

+0

查詢中只能有一個orde和一個條件。有時你可以結合值來創建一個邏輯AND,比如我在這裏描述的:http://stackoverflow.com/questions/26700924/query-based-on-multiple-where-clauses-in-firebase –